
java基础
草坪上升起的太阳
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Java内存溢出的分析和解决
JavaJVM软件测试项目管理单元测试 内存溢出与数据库锁表的问题,可以说是开发人员的噩梦,一般的程序异常,总是可以知道在什么时候或是在什么操作步骤上出现了异常,而且根据堆栈信息也很容易定位到程序中是某处出现了问题。内存溢出与锁表则不然,一般现象是操作一般时间后系统越来越慢,直到死机,但并不能明确是在什么操作上出现的,发生的时间点也没有规律,查看日志或查看数据库也不能定位出问题的代码。转载 2012-08-06 09:00:40 · 753 阅读 · 0 评论 -
装箱和拆箱实例深入解析
先上机实验一次,例子在《深入理解java虚拟机》P274面代码为:[java] view plaincopyprint?public class Test { public static void main(String[] args) { Integer a = 1;转载 2013-03-06 11:54:01 · 908 阅读 · 0 评论 -
加宽、装箱、var-arg
优先原则:加宽优先于装箱优先于var-arg(加宽->装箱->var-arg) 不能先加宽,后装箱(int不能变成Long)。 可以先装箱,后加宽(int可以通过Integer变成Object) 不能从一种包装器类型加宽的另一种包装器类型加宽一个基本变量是合法的,在每一种情况下,当未找到精确的匹配时,JVM就会使用一转载 2013-03-07 11:04:39 · 857 阅读 · 0 评论 -
非短路逻辑运算(|,&)
短路逻辑运算符:&&, ||所谓的短路就是一旦判断为false,终止运行下面语句。如:int x = 0;if(x++ == 1 && x++ == 1) {}System.out.println(x); //结果为1(当判断x++==1为false就不运行后面的x++==1了)非短路无论true还是false,都会运行,如:int x = 0;if(原创 2013-03-08 10:26:14 · 1136 阅读 · 0 评论 -
Java工具类之Apache的Commons Lang和BeanUtils
Apache Commons包估计是Java中使用最广发的工具包了,很多框架都依赖于这组工具包中的一部分,它提供了我们常用的一些编程需要,但是JDK没能提供的机能,最大化的减少重复代码的编写。http://commons.apache.org/ 1)Commons Lang是对JDK中java.lang包的补充,提供了各种各样的Utilities工具类,这里说说最常用的几个转载 2013-04-08 14:56:52 · 905 阅读 · 0 评论 -
java程序性能优化
一、避免在循环条件中使用复杂表达式 在不做编译优化的情况下,在循环中,循环条件会被反复计算,如果不使用复杂表达式,而使循环条件值不变的话,程序将会运行的更快。 例子: import java.util.vector;class cel { void method (vector vector) { for (int i = 0; i < vector.转载 2013-05-02 15:51:56 · 698 阅读 · 0 评论 -
String分析
栈(stack):主要保存基本类型(或者叫内置类型)(char、byte、short、int、long、float、double、boolean)和对象的引用,数据可以共享,速度仅次于寄存器(register),快于堆。堆(heap):用于存储对象。 String池(pool) :JAVA虚拟机(JVM)中存在着一个字符串池,其中保存着很多String对象; 并且可以被共享使用,因此它提高了效率。转载 2013-11-28 23:13:45 · 888 阅读 · 0 评论 -
JDK自带命令native2ascii的用法
JDK中自带的native2ascii功能还是比较强的。简单做以下介绍。1、只转换特定字符native2ascii在控制台中可以输入汉字回车后,就可以看到转移后的字符了。 Ctrl+C退出。2、转换properties文件native2ascii allMessages_zh_CN.input.properties allMessages_zh_CN.prope转载 2014-05-08 16:08:51 · 986 阅读 · 0 评论 -
使用lombok方式消除 Java 的冗长
Lombok 是一种 Java Archive (JAR) 文件,可用来消除 Java 代码的冗长。我们看这样一个例子,一个标准的 Java bean。一个典型的 Java bean 一般具有几个属性。每个属性具有一个 accessor 和 mutator(getter 和 setter)。通常还会有一个toString() 方法、一个 equals() 方法和一个 hashCode()转载 2014-05-20 16:51:24 · 5127 阅读 · 0 评论 -
Java IO的RandomAccessFile的使用
现有如下的一个需求,向已存在1G数据的txt文本里末尾追加一行文字,内容如下“Lucene是一款非常优秀的全文检索库”。可能大多数朋友会觉得这个需求很easy,说实话,确实easy,然后XXX君开始实现了,直接使用Java中的流读取了txt文本里原来所有的数据转成字符串后,然后拼接了“Lucene是一款非常优秀的全文检索库”,又写回文本里了,至此,大功告成。后来需求改了,向5G数据的txt文本里追转载 2014-07-15 09:55:02 · 27680 阅读 · 4 评论 -
JDK1.7的新特性
JDK7对Java语法有少量更新,重点是在易用性和便捷性的改进。 1.二进制字面量 JDK7开始,终于可以用二进制来表示整数(byte,short,int和long)。使用二进制字面量的好处是,可以是代码更容易被理解。语法非常简单,只要在二进制数值前面加 0b或者0B Java代码 byte nByte = (byte)0b0001; short n转载 2014-07-15 11:20:02 · 12402 阅读 · 0 评论 -
Java进阶
Java语法基础基本语法、数组、类、继承、多态、抽象类、接口、object对象、常用类(Math\Arrarys\String\StringBuffer、时间类、System)最终类、静态类、匿名类、 内 部 类、异常、编码规范、环境配置 1.Java开发入门:Java开发环境的安装与使用,包括JDK命令、EclipseIDE、 Linux下Java程序的开发和转载 2015-07-29 21:10:41 · 892 阅读 · 0 评论 -
类.class和类对象.getClass()、Class.forName("类名")的区别
1)Class cl=A.class; JVM将使用类A的类装载器,将类A装入内存(前提是:类A还没有装入内存),不对类A做类的初始化工作.返回类A的Class的对象2)Class cl=对象引用o.getClass();返回引用o运行时真正所指的对象(因为:儿子对象的引用可能会赋给父对象的引用变量中)所属的类的Class的对象 3)Class.forName("类名"); JAV转载 2013-01-18 14:42:49 · 636 阅读 · 0 评论 -
GC内存调优
Java内存组成1) 堆 运行时数据区域,所有类实例和数组的内存均从此处分配。Java 虚拟机启动时创建。对象的堆内存由称为垃圾回收器 的自动内存管理系统回收。 堆由两部分组成: 其中eden+fromspace+tospace也叫年轻代(young),old space叫旧生代. 其中还有S1,S0(在JDK的自带工具输出中会看到),分别转载 2013-01-11 14:28:59 · 611 阅读 · 0 评论 -
java System.getProperty()
核心提示:java中有一个System.getProperty()方法,但不知道究竟可以获取哪些属性值,于是在网上搜了一下,搜到这些东西。留着以后查看,也希望对大家有用。如有错漏,请大家不吝赐教,批评指正或者补充。java中有一个System.getProperty()方法,但不知道究竟可以获取哪些属性值,于是在网上搜了一下,搜到这些东西。留着以后查看,也希望对大家有用。如有错转载 2012-12-20 10:36:33 · 554 阅读 · 0 评论 -
java双缓冲技术
1屏幕产生闪烁的原因 正是这种先用背景色覆盖组件再重绘图像的方式导致了闪烁。即使时间很短,如果重绘的面积较大的话花去的时间也是比较可观的,这个时间甚至可以大到足以让闪烁严重到让人无法忍受的地步。 另外,用paint(Graphics g)函数在屏幕上直接绘图的时候,由于执行的语句比较多,程序不断地改变窗体中正在被绘制的图象,会造成绘制的缓慢,这也从一定程度上加剧了闪烁。转载 2012-09-27 14:00:40 · 779 阅读 · 0 评论 -
Java ClassLoader机制
当JVM(Java虚拟机)启动时,会形成由三个类加载器组成的初始类加载器层次结构: bootstrap classloader | extension classloader | system classloaderbootstrap classloader -引导(也称转载 2012-09-18 11:56:09 · 621 阅读 · 0 评论 -
java操作properties文件
java中的properties文件是一种配置文件,主要用于表达配置信息,文件类型为*.properties,格式为文本文件,文件的内容是格式是"键=值"的格式,在properties文件中,可以用"#"来作注释,properties文件在Java编程中用到的地方很多,操作很方便。一、properties文件test.properties------------------转载 2012-10-16 08:52:20 · 442 阅读 · 0 评论 -
Java堆内存的10个要点
当我开始学习Java编程时,我不知道什么是堆内存或堆空间,我甚至不知道当对象创建时,它们被放在了哪里。当我开始正式写一些程序后,我会经常遇到java.lang.outOfMemoryError的报错,之后我才开始关注什么是堆内存或者说堆空间(heap space)。对大多数程序员都经历过这样的过程,因为学习一种语言是非常容易来的,但是学习基础是非常难的,因为没有什么特定的流程让你学习编程的每个基础转载 2012-10-16 11:56:31 · 528 阅读 · 0 评论 -
java动态代理(JDK和cglib)
JAVA的动态代理 代理模式 代理模式是常用的java设计模式,他的特征是代理类与委托类有同样的接口,代理类主要负责为委托类预处理消息、过滤消息、把消息转发给委托类,以及事后处理消息等。代理类与委托类之间通常会存在关联关系,一个代理类的对象与一个委托类的对象关联,代理类的对象本身并不真正实现服务,而是通过调用委托类的对象的相关方法,来提供特定的服务。 按照代理的创建时期,代理类可以分为转载 2012-10-17 09:04:26 · 419 阅读 · 0 评论 -
泛型编程高级
1.泛型边界:Java泛型编程时,编译器忽略泛型参数的具体类型,认为使用泛型的类、方法对Object都适用,这在泛型编程中称为类型信息檫除。例如:[java] view plaincopyclass GenericType{ public static void main(String[] args){ System.out.prin转载 2012-10-22 11:45:05 · 436 阅读 · 0 评论 -
六种异常处理的陋习
你觉得自己是一个Java专家吗?是否肯定自己已经全面掌握了Java的异常处理机制?在下面这段代码中,你能够迅速找出异常处理的六个问题吗?1 OutputStreamWriter out = ... 2 java.sql.Connection conn = ... 3 try { // ⑸ 4 Statement stat = conn.createStat转载 2012-10-22 10:06:57 · 536 阅读 · 0 评论 -
[Charset]UTF-8, UTF-16, UTF-16LE, UTF-16BE的区别
import java.io.IOException; /** * UTF-16BE: 16 位 UCS 转换格式,Big Endian(最低地址存放高位字节,符合人们的阅读习惯)字节顺序 * UTF-16LE: 16 位 UCS 转换格式,Little-endian(最高地址存放高位字节)字节顺序 * UTF-16: 16 位 UCS 转换格式,字节顺序(是高字节在前还是低字节在转载 2012-10-28 22:37:55 · 997 阅读 · 0 评论 -
组合和聚合的区别
今天碰到一个题,问的是聚合和组合的区别,不是很清楚,到网上搜了一段话,摘录如下: 聚合:表示两个对象之间是整体和部分的弱关系,部分的生命周期可以超越整体。如电脑和鼠标。组合:表示两个对象之间是整体和部分的强关系,部分的生命周期不能超越整体,或者说不能脱离整体而存在。组合关系的“部分”,是不能在整体之间进行共享的。不过,如果你要说,眼睛可以移植,是不是说可以脱离人而存在,它们就不是组转载 2012-11-08 10:39:40 · 571 阅读 · 0 评论 -
hashCode的作用
============================================================ 如何理解hashCode的作用:============================================================ 以java.lang.Object来理解,JVM每new一个Object,它都会将这个Object丢到一个Has转载 2012-12-14 13:59:47 · 614 阅读 · 0 评论 -
Java获取环境变量
分为获取java自身的一些环境变量和和操作系统相关的环境变量。获取JVM相关的一些变量在运行时设置一个环境变量 debug 为 true: java -Ddebug=true YourClass在程序中设置一个环境变量 debug 为 true: System.setProperty( "debug", "true" );获取一个环境变量 debug : String de转载 2012-12-20 10:26:33 · 914 阅读 · 0 评论 -
IntelliJ IDEA使用git的问题总结
转:http://blog.csdn.net/tower888/article/details/241350551. IntelliJ IDEA 如何使用git插件上传代码到Bitbucket git库(1)创建Bitbucket git库(2)settings/搜索git,配置path to Git executable:D:\Program Files (x86)\转载 2016-03-20 10:37:30 · 3326 阅读 · 0 评论