Java进阶
文章平均质量分 60
brightyuan
一步步走
展开
-
Java进阶总结
一、多线程:1.多线程基本方法:同步,死锁实现手段:Runnable接口,Thread类其中:1.Thread类定义于java.lang 2.一个类extends Thread后覆盖本类中run()方法,就可实现多线程二、JNDI(Java Naming and Directory Interface,Java命名和目录接口)是一组原创 2012-07-28 23:58:12 · 620 阅读 · 0 评论 -
JVM基础研究整理
数据类型 Java虚拟机中,数据类型可以分为两类:基本类型和引用类型。基本类型的变量保存原始值,即:他代表的值就是数值本身;而引用类型的变量保存引用值。“引用值”代表了某个对象的引用,而不是对象本身,对象本身存放在这个引用值所表示的地址的位置。基本类型包括:byte,short,int,long,char,float,double,Boolean,returnAddress转载 2013-08-11 10:43:28 · 617 阅读 · 0 评论 -
JVM基础研究整理之五---分代垃圾回收详述1
为什么要分代 分代的垃圾回收策略,是基于这样一个事实:不同的对象的生命周期是不一样的。因此,不同生命周期的对象可以采取不同的收集方式,以便提高回收效率。 在Java程序运行的过程中,会产生大量的对象,其中有些对象是与业务信息相关,比如Http请求中的Session对象、线程、Socket连接,这类对象跟业务直接挂钩,因此生命周期比较长。但是还有一些对象,主要是转载 2013-08-11 11:47:27 · 799 阅读 · 0 评论 -
JVM基础研究整理之八--典型配置举例2
常见配置汇总 堆设置 -Xms:初始堆大小 -Xmx:最大堆大小 -XX:NewSize=n:设置年轻代大小 -XX:NewRatio=n:设置年轻代和年老代的比值。如:为3,表示年轻代与年老代比值为1:3,年轻代占整个年轻代年老代和的1/4 -XX:SurvivorRatio=n:年轻代中Eden区与两个Survivor区的比值。转载 2013-08-11 13:53:21 · 753 阅读 · 0 评论 -
JVM基础研究整理之九--新一代的垃圾回收算法
垃圾回收的瓶颈 传统分代垃圾回收方式,已经在一定程度上把垃圾回收给应用带来的负担降到了最小,把应用的吞吐量推到了一个极限。但是他无法解决的一个问题,就是Full GC所带来的应用暂停。在一些对实时性要求很高的应用场景下,GC暂停所带来的请求堆积和请求失败是无法接受的。这类应用可能要求请求的返回时间在几百甚至几十毫秒以内,如果分代垃圾回收方式要达到这个指标,只能把最大堆的设置限制在一个转载 2013-08-11 15:19:05 · 823 阅读 · 0 评论 -
JVM基础研究整理之十--调优方法
JVM调优工具Jconsole,jProfile,VisualVMJconsole : jdk自带,功能简单,但是可以在系统有一定负荷的情况下使用。对垃圾回收算法有很详细的跟踪。详细说明参考这里 JProfiler:商业软件,需要付费。功能强大。详细说明参考这里 VisualVM:JDK自带,功能强大,与JProfiler类似。推荐。转载 2013-08-11 15:33:50 · 656 阅读 · 0 评论 -
JVM基础研究整理之七--典型配置举例1
以下配置主要针对分代垃圾回收算法而言。堆大小设置年轻代的设置很关键JVM中最大堆大小有三方面限制:1.相关操作系统的数据模型(32-bt还是64-bit)限制;2.系统的可用虚拟内存限制;3.系统的可用物理内存限制。32位系统下,一般限制在1.5G~2G;64为操作系统对内存无限制。在Windows Server 2003 系统,3.5G物理转载 2013-08-11 13:40:23 · 683 阅读 · 0 评论 -
JVM基础研究整理之对象大小
Java对象的大小 基本数据的类型的大小是固定的,这里就不多说了。对于非基本类型的Java对象,其大小就值得商榷。 在Java中,一个空Object对象的大小是8byte,这个大小只是保存堆中一个没有任何属性的对象的大小。看下面语句:Object ob = new Object(); 这样在程序中完成了一个Java对象的生命,但是它所占的空转载 2013-08-11 10:57:38 · 763 阅读 · 0 评论 -
JVM基础研究整理之基本垃圾回收算法
可以从不同的的角度去划分垃圾回收算法:按照基本回收策略分引用计数(Reference Counting):比较古老的回收算法。原理是此对象有一个引用,即增加一个计数,删除一个引用则减少一个计数。垃圾回收时,只用收集计数为0的对象。此算法最致命的是无法处理循环引用的问题。 标记-清除(Mark-Sweep): 此算法执行分两阶转载 2013-08-11 11:12:31 · 770 阅读 · 0 评论 -
JVM基础研究整理之六--分代垃圾回收详述2
分代垃圾回收流程示意 选择合适的垃圾收集算法串行收集器 用单线程处理所有垃圾回收工作,因为无需多线程交互,所以效率比较高。但是,也无法使用多处理器的优势,所以此收集器适合单处理器机器。当然,此收集器也可以用在小数据量(100M左右)情况下的多处理器机器上。可以使用-XX:+UseSerialGC打开。转载 2013-08-11 13:23:26 · 716 阅读 · 0 评论 -
JVM性能调优实践
一.启动visualVM二.基本功能分析①内存堆使用情况② 永久保留区使用情况③内存使用情况:原创 2013-08-11 17:38:04 · 876 阅读 · 0 评论 -
Java进阶关键方法
关键字: Java 进阶 Spring Jboss 高级 本来我想把这篇文章的名字命名为: 的, 但是自己还不够优秀, 而本篇所涉及的都是自己学习和工作中的一些经验, 后来一想, 叫可能更为合适吧. 能给初学Java的人一个参考, 也就是我本来的心愿. 如果有大牛看到不妥之处, 敬请指正. 我一定会修正的 :). Java目前是最流行的语言之一, 是很多公司和程序原创 2012-12-10 10:27:03 · 605 阅读 · 0 评论 -
线程栈模型
线程栈是指某时刻时内存中线程调度的栈信息,当前调用的方法总是位于栈顶。线程栈的内容是随着程序的运行动态变化的,因此研究线程栈必须选择一个运行的时刻(实际上指代码运行到什么地方)。这幅图描述在代码执行到两个不同时刻1、2时候,虚拟机线程调用栈示意图。当程序执行到t.start();时候,程序多出一个分支(增加了一个调用栈B),这样,栈A、栈B并行执行。从这原创 2013-08-22 12:06:25 · 1282 阅读 · 0 评论 -
分析析JAVA中常见异常与原因
1.异常: java.lang.IndexOutOfBoundsException: Index: 0, Size: 0 at java.util.ArrayList.RangeCheck 解决:这种错误解决比较容易! 一般都是一开始就初始化了,之后就没有做过插入操作。java.util.List listObj = new java.util.ArrayList()原创 2011-12-02 09:32:18 · 978 阅读 · 0 评论 -
Java 线程以及sychronizd同步
1.使用情况:在多线程的情况下需要用到,比如public static变量,某一时刻只能一个线程进行操作并改变它的值,要用这个关键字来约束。来保证线程安全2.简介:并发的基础知识什么是线程?线程有时称为 轻量级进程。与进程一样,它们拥有通过程序运行的独立的并发路径,并且每个线程都有自己的程序计数器,称为堆栈和本地变量。然而,线程存在于进程中,它们与同一进程内的其他线程原创 2013-01-16 16:48:30 · 2505 阅读 · 0 评论 -
JavaCore知识点整理
线程:1.wait 和sleep区别:wait是Object的方法,别的线程可以访问锁定对象(调用wait方法时必须锁定对象)sleep时别的线程也不可以访问锁定对象2.进程和线程的区别:转载 2013-08-31 12:01:14 · 1852 阅读 · 0 评论 -
线程状态转换调度
阻止线程执行方法1.sleep()Thread.sleep(long millis)Thread.sleep(long millis, int nanos)线程sleep后在苏醒之前不会返回到可运行状态。当睡眠时间到期,则返回到可运行状态。注意:1、线程睡眠是帮助所有线程获得运行机会的最好方法。2、线程睡眠到期自动苏醒,并返回到可运行状态,不是运行状态。sleep()中原创 2013-08-22 16:25:40 · 823 阅读 · 0 评论 -
Eclipse 快捷键总结
编辑 作用域 功能 快捷键 全局 查找并替换 Ctrl+F 文本编辑器 查找上一个 Ctrl+Shift+K 文本编辑器 查找下一个 Ctrl+K 全局 撤销 Ctrl+Z 全局 复制 Ctrl+C 全局 恢复上一个选择 Alt+Shift+↓ 全局 剪切 Ctrl+X 全局 快速修正 Ctrl+1 全局 内容辅助(代码提示) Alt+/ 全局 全部选翻译 2011-11-09 00:09:51 · 597 阅读 · 0 评论 -
Java基础概念总结
1.MyEclipse学习:eclipse英文版中如何去修改字体及方法?首先打开eclipse中,按下面的方法即可菜单项:window ->preferences -> general ->》appearance -> colors and fonts,然后在右边看到一个编辑区:选择 java editor text fonts 项,点“change”按钮2.对象类型检测原创 2011-08-05 00:03:06 · 581 阅读 · 0 评论 -
java中的多线程
在java中要想实现多线程,有两种手段,一种是继续Thread类,另外一种是实现Runable接口。对于直接继承Thread的类来说,代码大致框架是:?123456789101112class 类名 extends Thread{方法1;方法2;…public void run(){转载 2012-11-26 17:22:51 · 996 阅读 · 1 评论 -
Java I/O
1.File 类getName()getPath()getAbsolutePath()exists()canRead()2.RandomAccessFile类:支持“随机访问”,支持多种文件访问方法3.InputStream and OutputStream 流:传输数据序列,是数据传输时的形态,分节点流,过滤流文件:数据静态储存形式In原创 2013-01-11 15:56:44 · 434 阅读 · 0 评论 -
java JDBC
1. Loading a database driver2. Creating a oracle jdbc Connection3. Creating a jdbc Statement object例子:原创 2013-05-08 10:15:25 · 731 阅读 · 0 评论 -
使用 Eclipse 平台进行调试
Eclipse 调试器和 Debug 视图Eclipse SDK 是针对 Java™ 开发工具(Java™ Development Tools,JDT)的项目,它具有一个内置的 Java 调试器,可以提供所有标准的调试功能,包括分步执行、设置断点和值、检查变量和值、挂起和恢复线程的功能。除此之外,还可以调试远程机器上运行的应用程序。Eclipse 平台很健壮,因为其他编程语言可以将该平台提转载 2013-05-09 13:59:49 · 662 阅读 · 0 评论 -
java集合类总结
常见的集合类:实现Collection接口的:Set、List以及他们的实现类。实现Map接口的:HashMap及其实现类,我们常用的有Map及其实现类HashMap,HashTable,List、Set及其实现类ArrayList、HashSet有时我们会遇到如下这样的问题:1、我们需要该容器的长度是不确定的。2、我们需要它能自动排序。3、转载 2013-05-06 18:58:29 · 854 阅读 · 0 评论 -
缓存技术
Java缓存:一、文件缓存,是指把数据存储在磁盘上 1.可以XML格式 2.可以序列化文件DAT格式 3.还是其它文件格式。二、内存缓存,也就是实现一个类中静态Map,对这个Map进行常规的增删查。原创 2013-05-30 11:38:28 · 631 阅读 · 0 评论 -
java反射机制
JAVA的反射是指,可以通过一个类名来探察这个类里面的信息,比如说类的属性名,属性名的修饰符,方法名,方法返回值,方法修饰符等等,反射还可以生成类的实例,通过这个实例定义属性,调用方法,特别是能调用私有的属性和私有的方法。package com.reflect;import java.lang.reflect.Method;public class ReflectionTest原创 2013-06-18 14:14:12 · 654 阅读 · 0 评论 -
Java正则表达式
在Sun的Java JDK 1.40版本中,Java自带了支持正则表达式的包,本文就抛砖引玉地介绍了如何使用java.util.regex包。在regex包中,包括了两个类,Pattern(模式类)和Matcher(匹配器类)。1,Pattern类是用来表达和陈述所要搜索模式的对象,2,Matcher类是真正影响搜索的对象。3,另加一个新的例外类,PatternSy转载 2013-06-18 15:35:47 · 792 阅读 · 0 评论 -
IntelliJ IDEA使用
http://www.jetbrains.com/idea/features/code_assistance.html1.2.3.快捷键:http://www.jetbrains.com/idea/features/code_assistance.html原创 2013-06-25 00:25:51 · 761 阅读 · 0 评论 -
事件机制Model
事件模型: 任何数量的事件监听对象可以监听来自任意事件源对象的所有类型的事件(即监听器和事件可以是1对多,多对1,1对1的关系)。比如:一个程序可能为每一个事件源创建一个监听器,或者用一个监听器监听所有事件源的所有事件。一个程序可以有多个监听器监听单个事件源的单个事件。原创 2013-07-12 17:55:09 · 685 阅读 · 0 评论 -
Java NIO教程总结
一,概述Java NIO 由以下几个核心部分组成:Selectors ,Channels ,BuffersChannel 和 Buffer基本上,所有的 IO 在NIO 中都从一个Channel 开始。Channel 有点象流。 数据可以从Channel读到Buffer中,也可以从Buffer 写到Channel中。这里有个图示:原创 2013-06-28 11:14:17 · 831 阅读 · 0 评论 -
Eclipse 中使用Ant xml 总结
使用 Ant创建新的 Ant 构建文件首先向您的项目中添加一个新的 Ant 文件,本教程后面会用到这个项目。打开 Package Explorer右击任何 Java 项目并单击 New > File 在 New File 窗口中,键入 build.xml 作为文件名文件创建好了,并且打开了 Ant 编辑器。现在,向该文件中添加一些内容。单击编辑器中的任何地方,并按 Ctrl+S转载 2013-05-09 17:54:48 · 1413 阅读 · 0 评论 -
Java练习题
《Java语言》练习题2011年5月28日一、选择题:1. Java源程序经编译生成的字节码文件的扩展名为 ,字节码文件由解释器执行。(A)A. class B. java C. exe D. html 2. 以下定义一维数组的语句中,正确的是: (D)A. int a[5]B. int a[翻译 2013-07-14 13:35:26 · 3597 阅读 · 0 评论 -
Java字符串常用总结
length() 用于获取字符串的长度public boolean equals(Object anObject) 用于比较给定对象是否与String相等重写equals()的一般步骤及注意事项:1. 使用==操作符检查“实参是否为指向对象的一个引用”。2. 使用instanceof操作符检查“实参是否为正确的类型”。 3. 把实参转换到正确的类型。 4. 对于该翻译 2013-05-07 15:28:02 · 710 阅读 · 0 评论 -
JAVA 注解示例
注解(Annotation) 为我们在代码中天界信息提供了一种形式化的方法,是我们可以在稍后某个时刻方便地使用这些数据(通过 解析注解 来使用这些数据)。 注解的语法比较简单,除了@符号的使用以外,它基本上与java的固有语法一致,java内置了三种注解,定义在java.lang包中。 @Override 表示当前方法是覆盖父类的方法。 @Deprecated 表示当转载 2013-07-03 21:21:43 · 926 阅读 · 0 评论 -
Eclipse使用相关总结
1.Eclipse查看调试jar包中的源文件准备工作,对你所要查看源码的jar包利用反编译工具(注:我目前使用的是jar_jad反编译工具)进行反编译,并将反编译后的src源文件保存为xxx.src.zip,在将src.zip添加到相应的jar包下,操作如下添加关联:操作方法:选择workspace 里面的一个项目,点击右键--->Build P原创 2012-05-06 21:17:24 · 1332 阅读 · 0 评论