Welcome 微信登录
编程资源 图片资源库 蚂蚁家优选 PDF转换器

首页 / 操作系统 / Linux

Python - 装饰器使用过程中的误区

Python - 装饰器使用过程中的误区

装饰器基本概念大家都知道装饰器是一个很著名的设计模式,经常被用于AOP(面向切面编程)的场景,较为经典的有插入日志,性能测试,事务处理,Web权限校验, Cache等。Python语言本身提供了装饰器语法(@),典型的装饰器实现如下:@function_wrapperdef function(): pass@实际上是python2.4才提出的语法糖,针对python2.4以前的版本有另一种等价的实现:def function():passfunction ...
Eclipse快捷键大全

Eclipse快捷键大全

Eclipse 常用快捷键Eclipse的编辑功能非常强大,掌握了Eclipse快捷键功能,能够大大提高开发效率。Eclipse中有如下一些和编辑相关的快捷键。1. 【ALT+/】此快捷键为用户编辑的好帮手,能为用户提供内容的辅助,不要为记不全方法和属性名称犯愁,当记不全类、方法和属性的名字时,多体验一下【ALT+/】快捷键带来的好处吧。2. 【Ctrl+O】显示类中方法和属性的大纲,能快速定位类的方法和属性,在查找Bug时非常有用。3. 【Ctrl+/】...
Java 网络编程

Java 网络编程

一:OSI模型Open System Interconnection 开放系统互联二:TCP/IP分层模型TCP代表传输控制协议:Transfer Control Protocol 允许两个程序之前进行可靠的通讯UDP代表用户报文协议:User Datagram Protocol允许两个程序之前进行不可靠的通讯三 客户端 和 服务器四:套接字定义:Socket(套接字)是一种抽象层,应用程序通过它来发送和接收数据五:InetAddress类代表IP地址,没...
使用Java设计验证码生成程序

使用Java设计验证码生成程序

我们使用Java来设计一个简单的验证码生成程序:验证码一个由4位的数字、字母随机组合而成图像,为了避免被光学字元识别(OCR,Optical Character Recognition)之类的程序识别出图片中的数字而失去效果,我们给图像中添加上几条干扰线。package password;/*** 使用Java设计验证码生成程序* @author hellokitty燕*/import java.awt.Color;import java.awt.Font...
Java Graphics 图形绘制

Java Graphics 图形绘制

Graphics类提供基本绘图方法,Graphics类提供基本的几何图形绘制方法,主要有:画线段、画矩形、画圆、画带颜色的图形、画椭圆、画圆弧、画多边形、画字符串等。画线段drawLinepublic abstract void drawLine(intx1,inty1,intx2,inty2)在此图形上下文的坐标系中,使用当前颜色在点(x1,y1)和(x2,y2)之间画一条线参数:x1- 第一个点的x坐标。y1- 第一个点的y坐标。x2- 第二个点的x坐...
Java布局管理器之CardLayout(卡片布局管理器)

Java布局管理器之CardLayout(卡片布局管理器)

对于选项卡这个概念大家可能不会陌生,就是在一个窗口中可以切换显示多页不同的内容,但同一时间只能是其中的某一页可见的,这样的一个个的页面就是选项卡。CardLayout就是类似的这样一个布局管理器,它能够让多个组件共享同一个显示空间,共享空间的组件之间的关系就像重叠在一起的一幅扑克牌,组件重叠在一起,初始时显示该空间中第一个组件,通过CardLayout类提供的方法可以切换该空间中显示的组件。下面我们来看一个例子,实现CardLayout布局管理器的使用。创...
Java垃圾回收器的工作原理

Java垃圾回收器的工作原理

Java 语言的一大特点就是可以进行自动垃圾回收处理,而无需开发人员过于关注系统资源,例如内存资源的释放情况。自动垃圾收集虽然大大减轻了开发人员的工作量,但是也增加了软件系统的负担。拥有垃圾收集器可以说是 Java 语言与 C++语言的一项显著区别。在 C++语言中,程序员必须小心谨慎地处理每一项内存分配,且内存使用完后必须手工释放曾经占用的内存空间。当内存释放不够完全时,即存在分配但永不释放的内存块,就会引起内存泄漏,严重时甚至导致程序瘫痪。以下列举了垃...
C++中赋值操作符为什么要返回引用类型

C++中赋值操作符为什么要返回引用类型

C++中赋值操作符为什么要返回引用类型class Test{ Test& operator= (const Test& t) { }}这个是我们熟悉的赋值操作符函数的格式,但是该函数为什么非得要返回一个引用呢。查阅了很多资料感觉这种解释比较靠谱:Test a,b,c;a=b=c这里存在连续赋值,这是符合C++的语法规范的。如果赋值操作符返回一个引用类型,倒不是说 b=c 返回的引用变量直接赋值给a,毕竟a不是引用类型。该过程...
C++虚继承与普通继承的区别

C++虚继承与普通继承的区别

虚继承的时候在子类的对象中会多出一个叫虚类指针的大小,有的资料说这个指针指向的内存里面包含了该子类的偏移量和到基类的距离。但是我跟踪过这段内存,发现里面的数据没有规律,也找不到更多的支撑材料,权且先知道子类的对象里面会有这么一个东西吧。先总结虚拟继承中比较特殊的地方,希望能够对大家有所帮助:虚继承时子类的虚函数不再是添加到父类部分的虚表中,而在普通的继承中确实直接添加到父类的虚表中,这就意味着如果虚继承中子类父类都有各自的虚函数,在子类里面就会多出一个虚表...
Hibernate PO对象状态

Hibernate PO对象状态

Hibernate的PO对象有三种状态:临时状态(又称临时态)、持久状态(又称为持久态)和脱管状态(又称为脱管态、游离态)。处理持久态的对象也称为PO,临时对象和脱管对象也称为VO。1、临时态:简单来说,由new命令开辟内存空间时刚生成的java对象就是处于临时态。比如:User user = new User();如果没有变量对该对象进行引用,它将被java虚拟机回收。临时对象在内存中是孤立存在的,它是携带信息的载体,不和数据库的数据有任何关联关系。在h...
Spring3.2.11与Quartz2.2.1整合时内存泄漏问题解决

Spring3.2.11与Quartz2.2.1整合时内存泄漏问题解决

Quartz是一款定时任务调度的开源框架,使用起来比较方便。并且Spring的support包对Quartz有集成。但是笔者在web应用使用的过程中却遇到了内存泄漏的问题。问题的产生笔者在使用Spring+Quartz的用法如下(熟悉Spring+Quartz的可以跳过直接看问题):1.配置Scheduler工厂<bean id="schedulerFactory" class="org.springframework.scheduling.quar...
Ruby中的语句中断和返回

Ruby中的语句中断和返回

return,break,next 这几个关键字的使用都涉及到跳出作用域的问题,而他们的不同 则在于不同的关键字跳出去的目的作用域的不同,因为有代码块则导致有一些地方需要格外注意。return常用方式通常情况下的return语句和大家理解的意思是相同的。def m1 paramif param == 1return "returned 1" end"returned default value"#根据Ruby语言规范,最后一条执行语句的结果将作为返回值返,...
Spring REST 异常处理

Spring REST 异常处理

在上一篇中写到了Spring MVC的异常处理【见 http://www.linuxidc.com/Linux/2015-06/119049.htm】,SpringMVC捕获到异常之后会转到相应的错误页面,但是我们REST API ,一般只返回结果和状态码,比如发生异常,只向客户端返回一个500的状态码,和一个错误消息。如果我们不做处理,客户端通过REST API访问,发生异常的话,会得到一个错误页面的html代码。。。这时候怎么做呢, 我现在所知道的就两...
使用HttpClient4来构建Spring RestTemplate

使用HttpClient4来构建Spring RestTemplate

Spring RestTemplate简单说明现在REST服务已经很普及了,在我们的程序中,经常会需要调用REST API,这时候会有很多选择,原始一点的JDK自带的,再进一步点使用HttpClient,或者说如果我们使用Jersey这种框架的话,也会自带rest client。但是我们项目使用的SpringMVC,所以直接使用RestTemplate。使用RestTemplate比直接使用Httpclient简单很多,同时也可以借助httpclient来...
HttpClient 教程

HttpClient 教程

前言超文本传输协议(HTTP)也许是当今互联网上使用的最重要的协议了。Web服务,有网络功能的设备和网络计算的发展,都持续扩展了HTTP协议的角色,超越了用户使用的Web浏览器范畴,同时,也增加了需要HTTP协议支持的应用程序的数量。尽管java.net包提供了基本通过HTTP访问资源的功能,但它没有提供全面的灵活性和其它很多应用程序需要的功能。HttpClient就是寻求弥补这项空白的组件,通过提供一个有效的,保持更新的,功能丰富的软件包来实现客户端最新...
Effective Java - 延迟初始化

Effective Java - 延迟初始化

延迟初始化(lazy initialization),也就是在真正被使用的时候才开始初始化的技巧。不论是静态还是实例,都可以进行延迟初始化。其本质是初始化开销和访问开销之间的权衡。毕竟是一种优化技巧,使用不当会起反效果。尤其是在多线程场景中这种反效果会尤为明显,因为我们要对这个进行延迟初始化的field进行同步。先一步步开始,如果初始化开销不值一提,我们只需要保证其不可变即可:private final FieldType field1 = compute...
<< 3731 3732 3733 3734 3735 3736 3737 3738 3739 3740 >>