-
深入认识Java垃圾回收机制
所属栏目:[教程] 日期:2021-11-19 热度:200
一、垃圾回收机制的意义 Java语言中一个显著的特点就是引入了垃圾回收机制,使c++程序员最头疼的内存管理的问题迎刃而解,它使得Java程序员在编写程序的时候不再需要考虑内存管理。由于有个垃圾回收机制,Java中的对象不再有作用域的概念,只有对象的引用才[详细]
-
赋值操作符的异常实现办法
所属栏目:[教程] 日期:2021-11-19 热度:80
在类的定义中,我们通常会重载赋值操作符,来替代编译器合成的版本,实现中会对每个类的成员变量进行具体的操作,比如下面的代码: class Sales_Item { public: Sales_Item operator=(const Sales_Item rhs); //other mebers and functions private: char *p[详细]
-
Ruby探针的基本达成原理
所属栏目:[教程] 日期:2021-11-19 热度:122
语言本身 Ruby语言支持语法级别的系统,框架,甚至语言本身的方法复写,一般叫做元编程(meta programming), 此基础之上还有一些术语为mixin,方法的动态定义,运行时类改写等等,这些技术和机制可以让语言本身就能实 现其他语言需要字节码才能实现的功能[详细]
-
提高Python运行效率的六个方法
所属栏目:[教程] 日期:2021-11-19 热度:162
Python是一门优秀的语言,它能让你在短时间内通过极少量代码就能完成许多操作。不仅如此,它还轻松支持多任务处理,比如多进程。 不喜欢Python的人经常会吐嘈Python运行太慢。但是,事实并非如此。尝试以下六个窍门,来为你的Python应用提速。 窍门一:关键[详细]
-
Python - 装饰器使用过程中的问题
所属栏目:[教程] 日期:2021-11-19 热度:112
装饰器基本概念 大家都知道装饰器是一个很著名的设计模式,经常被用于AOP(面向切面编程)的场景,较为经典的有插入日志,性能测试,事务处理,Web权限校验, Cache等。 Python语言本身提供了装饰器语法(@),典型的装饰器实现如下: @function_wrapper def f[详细]
-
C++虚继承与普通继承的差异
所属栏目:[教程] 日期:2021-11-19 热度:118
虚继承的时候在子类的对象中会多出一个叫虚类指针的大小,有的资料说这个指针指向的内存里面包含了该子类的偏移量和到基类的距离。但是我跟踪过这段内存,发现里面的数据没有规律,也找不到更多的支撑材料,权且先知道子类的对象里面会有这么一个东西吧。 先[详细]
-
Spring3.2.11与Quartz2.2.1整合时内存泄漏问题解决
所属栏目:[教程] 日期:2021-11-19 热度:184
Quartz是一款定时任务调度的开源框架,使用起来比较方便。并且Spring的support包对Quartz有集成。但是笔者在web应用使用的过程中却遇到了内存泄漏的问题。 问题的产生 笔者在使用Spring+Quartz的用法如下(熟悉Spring+Quartz的可以跳过直接看问题): 1.配置[详细]
-
Spring REST 异常解决
所属栏目:[教程] 日期:2021-11-19 热度:115
通过ResponseEntity 通过ResponseEntity接收两个参数,一个是对象,一个是HttpStatus. 举例: @RequestMapping(value=/customer/{id} ) public ResponseEntityCustomer getCustomerById(@PathVariable String id) { Customer customer; try { customer = cus[详细]
-
AngularJS - 服务说明
所属栏目:[教程] 日期:2021-11-19 热度:136
服务是AngularJS中非常重要的一个概念,虽然我们有了控制器,但考虑到其生命实在脆弱,我们需要用到服务。 起初用service时,我便把service和factory()理所当然地关联起来了。 确实,factory()是创建一个服务的最简单的方式,但服务并非仅此而已。 这里记录[详细]
-
使用Python多线程犯的错误概括
所属栏目:[教程] 日期:2021-11-19 热度:133
在使用Python多线程的时候,在使用多线程编程的时候,由于对于变量作用域和多线程不是很熟悉,导致在使用多线程的时候,犯了低级的错误。 第一个错误: 在多线程中使用全局变量,导致多个线程修改全局变量。执行信息错乱,开始是几个个进程,后面就变成一个了[详细]
-
C++ CBitmap,HBitmap,Bitmap差异及联系
所属栏目:[教程] 日期:2021-11-19 热度:163
加载一位图,可以使用LoadImage: HANDLE LoadImage(HINSTANCE hinst,LPCTSTR lpszName,UINT uType,int cxDesired,int CyDesired,UINT fuLoad); LoadImage可以用来加载位图,图标和光标 加载时可以规定加载图的映射到内存的大小: cxDesired:指定图[详细]
-
Python遍历文件夹和读写文件的技巧
所属栏目:[教程] 日期:2021-11-19 热度:108
1、读取指定目录下的所有文件 2、读取指定文件,输出文件内容 3、创建一个文件并保存到指定目录 Python写代码简洁高效,实现以上功能仅用了40行左右的代码~ 昨天用Java写了一个写入、创建、复制、重命名文件要将近60行代码; 不过简洁的代价是牺牲了一点点运[详细]
-
Java实现线程的三种办法
所属栏目:[教程] 日期:2021-11-18 热度:82
并发不一定要依赖多线程(如PHP中很常见的多进程并发)。 线程的实现 各个线程既可以共享进程资源(内存地址、文件I/O等),又可以独立调度(线程是CPU调度的基本单位)。 每个已经执行start()且还未结束的Java.lang.Thread类的实例就代表了一个线程。Thread[详细]
-
Spring与Hibernate整合事务管理的认识
所属栏目:[教程] 日期:2021-11-18 热度:51
在谈Spring事务管理之前我们想一下在我们不用Spring的时候,在Hibernate中我们是怎么进行数据操作的。在Hibernate中我们每次进行一个操作的的时候我们都是要先开启事务,然后进行数据操作,然后提交事务,关闭事务,我们这样做的原因是因为Hibernate默认的事[详细]
-
从源代码到可执行文件——编译全过程介绍
所属栏目:[教程] 日期:2021-11-18 热度:158
程序的生命周期从一个高级C语言程序开始,这种形式能够被人读懂,却不能被机器读懂,为了在系统上运行这个程序,该源程序需要被其他程序转化为一系列低级机器语言指令,然后将这些指令按照可执行目标程序的格式打包并以二进制磁盘文件形式存储起来。 在Linux[详细]
-
Objective-C枚举的几种定义办法与使用
所属栏目:[教程] 日期:2021-11-18 热度:73
假设我们需要表示网络连接状态,可以用下列枚举表示: enum CSConnectionState { CSConnectionStateDisconnected, CSConnectionStateConnecting, CSConnectionStateConnected, }; 然而定义枚举变量的方式却太不简介,要依如些语法编写: enum CSConnectionSt[详细]
-
xStream达成Java类输出xml文件
所属栏目:[教程] 日期:2021-11-18 热度:77
很多情况下,需要生成结构明确的xml文件,来进行接口交互。 生成xml文件有很多工具,Java自己也可以一个节点一个节点的来生成,但效率低下,不方便结构化,也不通用。 可以根据java类来自动生成对应结构化的xml文件的库很多,今天简单说一下xStream库,非常[详细]
-
C++类中虚表的详细介绍
所属栏目:[教程] 日期:2021-11-18 热度:184
C++类中的虚表结构是C++对象模型中一个重要的知识点,这里咱们就来深入分析下虚表的在内存中的结构。 C++一个类中有虚函数的话就会有一个虚表指针,其指向对应的虚表,一般一个类只会有一个虚表,每个虚表有多个插槽,每个插槽存放一个虚函数的地址。插槽中[详细]
-
深入认识C++对象模型
所属栏目:[教程] 日期:2021-11-18 热度:69
C++对象模型是比较重要的一个知识点,学习C++对象的内存模型,就可以明白C++中的多态原理、类的初始化顺序问题、类的大小问题等。 1 C++对象模型基础 1.1 C++对象中都有哪些东东 C++对象中包括以下内容: 静态常量 成员变量 成员函数 虚函数 纯续函数 ... 以[详细]
-
JavaScript事件流原理介绍
所属栏目:[教程] 日期:2021-11-18 热度:154
国庆前几天由于任务比较重,要赶在国庆前把一个进度的任务开发完成,所以也就有点赶,但是却遇到了一个比较奇怪的Bug,导致了任务比预计的延迟了几个小时,对此深表遗憾,所以利用国庆的这段时间来补一补这个不足,也为了国庆后能够更好的完成公司的业务打下[详细]
-
深入认识基本套接字编程
所属栏目:[教程] 日期:2021-11-18 热度:59
随着网络编程(C/C++)的学习,发现自己对于基本套接字编程有些细节还是不太清楚,然后又查看了对应的书籍和资料,趁着这段时间把这些基础知识梳理了一下,便于自己回顾,同时大家也可以作为参考 :) ~ 套接字地址结构 struct in_addr { in_addr_t s_addr; //[详细]
-
分析UDP套接字编程
所属栏目:[教程] 日期:2021-11-18 热度:150
UDP和TCP处于同一层网络模型中,也就是运输层,基于二者之上的应用有很多,常见的基于TCP的有HTTP、Telnet等,基于UDP有DNS、NFS、SNMP等。UDP是无连接,不可靠的数据协议服务,而TCP提供面向流、提供可靠数据服务。注意,UDP和TCP没有好坏之分,只是二者的[详细]
-
va_start和va_end使用介绍
所属栏目:[教程] 日期:2021-11-18 热度:55
在前一篇帖子Format MessageBox 详解中曾使用到va_start和va_end这两个宏,但对它们也只是泛泛的了解。 介绍这两个宏之前先看一下C中传递函数的参数时的用法和原理: 1.在C中,当我们无法列出传递函数的所有实参的类型和数目时,可以用省略号指定参数表 void[详细]
-
借助epoll写一个“迷你”的网络事件库
所属栏目:[教程] 日期:2021-11-18 热度:51
epoll是Linux下高性能的IO复用技术,是Linux下多路复用IO接口select/poll的增强版本,它能显著提高程序在大量并发连接中只有少量活跃的情况下的系统CPU利用率。另一点原因就是获取事件的时候,它无须遍历整个被侦听的描述符集,只要遍历那些被内核IO事件异步[详细]
-
HashMap达成原理分析
所属栏目:[教程] 日期:2021-11-18 热度:154
HashMap实现原理分析 概述 HashMap是Java集合框架(Java Collection Framework, JCF)中一个基础类,它在1998年12月,加入到Java 2版本中。在此之后,Map接口本身除了在Java 5中引入了泛型以外,再没有发生过明显变化。然而HashMap的实现,则为了提升性能,[详细]
