随笔分类 -  Java

摘要:垃圾回收包含的内容不少,但顺着下面的顺序捋清知识也并不难。首先要搞清垃圾回收的范围(栈需要GC去回收吗?),然后就是回收的前提条件如何判断一个对象已经可以被回收(这里只重点学习根搜索算法就行了),之后便是建立在根搜索基础上的三种回收策略,最后便是JVM中对这三种策略的具体实现。1.范围:要回收哪些区域?Java方法栈、本地方法栈以及PC计数器随方法或线程的结束而自然被回收,所以这些区域不需要考虑回收问题。Java堆和方法区是GC回收的重点区域,因为一个接口的多个实现类需要的内存不一样,一个方法的多个分支需要的内存可能也不一样,而这两个区域又对立于栈可能随时都会有对象不再被引用,因此这部分内存的 阅读全文
posted @ 2014-01-21 15:00 晨曦语晴 阅读(546) 评论(0) 推荐(0)
摘要:Java虚拟机体内部系结构包括class文件、类装载子系统、运行时数据区、执行引擎、本地方法调用结构,其中运行时数据区包括方法区、堆、Java栈、程序计数器、本地方法栈等。具体结构如下图所示(摘自Inside Java Virtual Machine):1. class文件在Java中,所有源文件都编译成二进制的字节码,然后由虚拟机装载运行。一般这样的字节码是以class文件的形式存在。在运行时,由ClassLoader类(System ClassLoader or User-defined ClassLoader)找到对应的class文件,读取其中的字节码,然后交由虚拟机解析运行。在clas 阅读全文
posted @ 2014-01-21 14:57 晨曦语晴 阅读(270) 评论(0) 推荐(0)
摘要:1) 从程序设计语言的理论上:局部内部类(即:定义在方法中的内部类),由于本身就是在方法内部(可出现在形式参数定义处或者方法体处),因而访问方法中的局部变量(形式参数或局部变量)是天经地义的.是很自然的2) 为什么JAVA中要加上一条限制:只能访问final型的局部变量?3) JAVA语言的编译程序的设计者当然全实现:局部内部类能访问方法中的所有的局部变量(因为:从理论上这是很自然的要求),但是:编译技术是无法实现的或代价极高.4) 困难在何处?到底难在哪儿? 局部变量的生命周期与局部内部类的对象的生命周期的不一致性!5) 设方法f被调用,从而在它的调用栈中生成了变量i,此时产生了一个局部.. 阅读全文
posted @ 2014-01-21 14:27 晨曦语晴 阅读(764) 评论(0) 推荐(0)
摘要:一、安装相应的JAVA包,下载相应的Tomcat版本的WEB容器二、配置JAVA环境变量,分别配置下列几项环境变量:1.首先,打开配置环境变量界面,如下操作:我的电脑---属性---高级---环境变量 2.系统变量(S)中配置如下: 2.1,新建系统变量: 变量名:JAVA_HOME 变量值:C:\ProgramFiles\Java\jdk1.5.0_17(可更换为相应版本的jdk包) 2.2,编辑CLASSPATH,如果没有该变量则新建, 变量名:CLASSPATH变量值:%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;(注:该变量值置于CL 阅读全文
posted @ 2014-01-21 10:51 晨曦语晴 阅读(312) 评论(0) 推荐(0)
摘要:下面是个最简单的使用jdbc取得数据的应用。在例子之后我将分成4步,分别是①取得连接,②创建PreparedStatement,③设置参数,④执行查询,来分步分析这个过程。除了设置参数那一步之外,其他的我都画了时序图,如果不想看文字的话,可以对着时序图。文中的第4步是组装MySQL协议并发送数据包的关键,而且在这部分的(b)环节,我对于PreparedStatement的应用有详细的代码注释分析,建议大家关注一下。Java代码publicclassDBHelper{publicstaticConnectiongetConnection(){Connectionconn=null;try{Cla 阅读全文
posted @ 2014-01-20 15:12 晨曦语晴 阅读(1558) 评论(0) 推荐(0)
摘要:jspSmartUpload组件,可从http://download.csdn.net/user/dearchuansir下载,压缩包的名字是jspSmartUpload.zip。下载后,将其解压到Tomcat的webapps目录下。解压后,将webapps/jspsmartupload目录下的子目录Web-inf名字改为全大写的WEB-INF,这样一改jspSmartUpload类才能使用。如果想让Tomcat服务器的所有Web应用程序都能用它,必须做如下工作:1.进入命令行状态,将目录切换到Tomcat的webapps/jspsmartupload/WEB-INF目录下。2.运行JAR打包 阅读全文
posted @ 2014-01-20 15:10 晨曦语晴 阅读(534) 评论(0) 推荐(0)
摘要:1.PreparedStatement是预编译的,对于批量处理可以大大提高效率.也叫JDBC存储过程2.使用Statement对象。在对数据库只执行一次性存取的时侯,用Statement对象进行处理。PreparedStatement对象的开销比Statement大,对于一次性操作并不会带来额外的好处。3.statement每次执行sql语句,相关数据库都要执行sql语句的编译,preparedstatement是预编译得,preparedstatement支持批处理4.CodeFragment1:StringupdateString="UPDATECOFFEESSETSALES=7 阅读全文
posted @ 2014-01-20 15:08 晨曦语晴 阅读(698) 评论(0) 推荐(0)
摘要:1.Class文件基础(1)文件格式Class文件的结构不像XML等描述语言那样松散自由。由于它没有任何分隔符号,所以,以上数据项无论是顺序还是数量都是被严格限定的。哪个字节代表什么含义,长度是多少,先后顺序如何,都不允许改变。(2)数据类型仔细观察上面的Class文件格式,可以看出Class文件格式采用一种类似于C语言结构体的伪结构来存储,这种伪结构中只有两种数据类型:无符号数和表。无符号数就是u1、u2、u4、u8来分别代表1个、2个、4个、8个字节。表是由多个无符号数或其他表构成的复合数据类型,以“_info”结尾。在表开始位置,通常会使用一个前置的容量计数器,因为表通常要描述数量不定的 阅读全文
posted @ 2014-01-20 14:19 晨曦语晴 阅读(3531) 评论(0) 推荐(0)