
java基础
zhouyong0
这个作者很懒,什么都没留下…
展开
-
Collections
Collections 和Arrays的作用一样的 collections 是对集合的操作 Arrays 是针对数组的。常用的方法//生成比较器进行排序ArrayList list = new ArrayList();Comparator r = Collections.reverseOrder();Collections.sort(list,r);//打乱顺序Collections.shuffle(list);//求最大值和最小值Collections.max(list);Colle原创 2011-05-18 17:05:00 · 561 阅读 · 0 评论 -
Java异常处理的陋习展播
你觉得自己是一个Java专家吗?是否肯定自己已经全面掌握了Java的异常处理机制?在下面这段代码中,你能够迅速找出异常处理的六个问题吗?1 OutputStreamWriter out = ... 2 java.sql.Connection conn = ...3 try { // ⑸ 4 Statement stat = conn.createSta转载 2011-11-30 09:29:14 · 1002 阅读 · 0 评论 -
java内存分配机制
通过这几天对一个内存溢出程序的监控,学习了程序运行时对内存的使用机制,在这里和大家分享下。 Java程序运行在JVM(Java Virtual Machine,Java虚拟机)上,可以把JVM理解成Java程序和操作系统之间的桥梁,JVM实现了Java的平台无关性,由此可见JVM的重要性。所以在学习Java内存分配原理的时候一定要牢记这一切都是在JVM中进行的,JVM是内存转载 2012-06-12 13:59:24 · 594 阅读 · 0 评论 -
java 浮点数表示详解及解决方法(实例函数)
定点数表达法的缺点在于其形式过于僵硬,固定的小数点位置决定了固定位数的整数部分和小数部分,不利于同时表达特别大的数或者特别小的数。 计算机系统采纳了所谓的浮点数表达方式。这种表达方式利用科学计数法来表达实数,即用一个尾数(Mantissa也叫有效数字 ),一个基数(Base),一个指数(Exponent)以及 一个表示正负的符号来表达实数。浮点数利用指数达到了浮动小数点的效果,从而可以转载 2012-07-05 12:39:57 · 5793 阅读 · 0 评论 -
java的动态绑定与静态绑定
程序绑定的概念:绑定指的是一个方法的调用与方法所在的类(方法主体)关联起来。对java来说,绑定分为静态绑定和动态绑定;或者叫做前期绑定和后期绑定 静态绑定:在程序执行前方法已经被绑定,此时由编译器或其它连接程序实现。例如:C。针对java简单的可以理解为程序编译期的绑定;这里特别说明一点,java当中的方法只有final,static,private和构造方法是前期绑定转载 2012-06-25 19:47:30 · 715 阅读 · 0 评论 -
java 类加载和初始化的那点秘密
先看看下面的这段代码,这个例子将说明类加载的顺序。也可以直接略过代码,直接看下面的图:class GrandFather{GrandFather(){System.out.println("the GrandFather constructor is initialized");}static{System.out.println("the GrandFather st转载 2012-06-26 12:49:14 · 454 阅读 · 0 评论 -
动态绑定的例子
import java.util.ArrayList;import java.util.List;public class Test2 { public static void main(String[] args) { A a = new B(); a.printA(); }}class A{ void printA(){ System.原创 2012-06-25 20:03:01 · 828 阅读 · 0 评论 -
程序执行顺序
public class TestA { public TestA(String a){ System.out.println(a); } } /**类B**/ public class TestB { public TestB(String b){ System.out.println(b原创 2012-06-25 19:13:04 · 524 阅读 · 0 评论 -
java.math.BigDecimal类的用法
在java中提供了大数字的操作类,即java.math.BinInteger类和java.math.BigDecimal类。这两个类用于高精度计 算,其中BigInteger类是针对大整数的处理类,而BigDecimal类则是针对大小数的处理类。下边我们介绍BigDecimal类: BigDecimal的实现利用到了BigInteger,不同的是BigDecimal加入了小数的概念。一般的fl转载 2012-07-17 10:11:23 · 1043 阅读 · 0 评论 -
浮点数在计算机中存储方式
C语言和C#语言中,对于浮点类型的数据采用单精度类型(float)和双精度类型(double)来存储,float数据占用32bit,double数据占用64bit,我们在声明一个变量float f= 2.25f的时候,是如何分配内存的呢?如果胡乱分配,那世界岂不是乱套了么,其实不论是float还是double在存储方式上都是遵从IEEE的规范的,float遵从的是IEEE R32.24 ,而dou转载 2012-07-17 10:19:04 · 777 阅读 · 0 评论 -
java 线程---成员变量与局部变量
关于成员变量与局部变量:如果一个变量是成员变量,那么多个线程对同一个对象的成员变量进行操作时,他们对该成员变量是彼此影响的(也就是说一个线程对成员变量的改变会影响到另一个线程) 。 如果一个变量是局部变量,那么每个线程都会有一个该局部变量的拷贝,一个线程对该局部变量的改变不会影响到其他的线程。 实例: Servlet容器为了响应多个用户同时访问一个Servlet的HTTP请求,转载 2012-08-05 14:33:48 · 756 阅读 · 0 评论 -
ThreadLocal实现线程范围的共享变量
这里先说下ThreadLocal不是一个线程的本地实现版本,不是一个Thread,它是thread local variable(线程局部变量);用于实现线程内的数据共享,即对于相同的程序代码,多个模块在同一个线程中运行时要共享一份数据,而在另外线程中运行时又共享另外一份数据。换一句话说就是为每一个使用该变量的线程都提供一个变量值的副本,是每一个线程都可以独立地改变自己的副本,而不会和其它线程的副转载 2012-08-06 16:30:26 · 697 阅读 · 0 评论 -
java.toString() ,(String),valueOf
在java项目的实际开发和应用中,常常需要用到将对象转为String这一基本功能。本文将对常用的转换方法进行一个总结。常用的方法有Object#toString(),(String)要转换的对象,String.valueOf(Object)等。下面对这些方法一一进行分析。方法转载 2011-09-17 22:17:24 · 552 阅读 · 0 评论 -
Object类的解释(equals,hashcode)
public boolean equals(Object obj)Indicates whether some other object is "equal to" this one.The equals method implements an equivalence原创 2011-05-18 14:34:00 · 1910 阅读 · 0 评论 -
原码 补码 反码
在计算机内,定点数有3种表示法:原码、反码和补码所谓原码就是前面所介绍的二进制定点表示法,即最高位为符号位,“0”表示正,“1”表示负,其余位表示数值的大小。反码表示法规定:正数的反码与其原码相同;负数的反码是对其原码逐位取反,但符号位除外。补码表示法规定:正数的补码转载 2011-09-10 15:15:33 · 2400 阅读 · 0 评论 -
Iterator(迭代器的两中使用方式for和while)
for和while原创 2011-05-18 17:14:00 · 3887 阅读 · 0 评论 -
HashMap的两中迭代方式(源代码解析)
Map map = new HashMap();map.put("a1", "a11");map.put("a2", "a22");Set set = map.keySet();for(Iterator iter= set.iterator();iter.hasNext();){ String key = (String)iter.next(); String value = (String)map.get(key); System.out.println原创 2011-05-18 17:17:00 · 9255 阅读 · 0 评论 -
LinkedList源码分析
<br />数据结构(LinkedList是双向循环链表)<br /> <br /><br /> <br /> <br /> <br /> <br /> <br /><br /> <br /> <br /> <br /><br /> <br /> <br />1. 构造方法<br />/**<br /> * Constructs an empty list.//构造一个空的列表<br /> */<br />public LinkedList() {<br />原创 2011-05-17 16:04:00 · 1707 阅读 · 0 评论 -
HashSet(overwrite hashcode、equals方法、源码)
当使用Hashset时,hashCode方法就会得到调用,判断已经存储在集合中的对象的hashcode值是否与增加的对象的hashcode值一致;如果不一致,直接加进去,如果一致,再进行equals方法的比较,equals方法如果返回true表示对象已经加入了,就不会增加新的对象,否则加进去同名的人不要增加到HashSet中HashSet set = new HashSet();set.add(new Person("zhangsan"));set.add(new Person("zhangsan"原创 2011-05-18 17:10:00 · 1101 阅读 · 0 评论 -
TreeSet(有顺序的排列元素 Set的里面不容许有重复的、认情况下就通过equals来比较)
Set的里面不容许有重复的,如果是对象的话,就要给它一个比较的规则,否则默认情况下就通过equals来比较原创 2011-05-18 17:23:00 · 2579 阅读 · 0 评论 -
JAVA动态绑定的内部实现机制
JAVA虚拟机调用一个类方法时,它会基于对象引用的类型(通常在编译时可知)来选择所调用的方法。相反,当虚拟机调用一个实例方法时,它会基于对象实际的类型(只能在运行时得知)来选择所调用的方法,这就是动态绑定,是多态的一种。动态绑定为解决实际的业务问题提供了很大的灵活性,是一种非常优美的机制。1 JAVA对象模型 JAVA虚拟机规范并没有规定JAVA对象在堆里是如何表示的。对象的内部表示也影响着整个堆以及垃圾收集器的设计,它由虚拟机的实现者决定。 JAVA对象中包含的基本数据由它所属的类及其所有转载 2011-05-24 09:43:00 · 767 阅读 · 0 评论 -
String用法详解(equal源码 ==和equal的解释、字面赋值和new赋值效率、重写了hashcode的方法解释)
String a = “abc”;//在字符串池中找abc,如果有,就直接返回地址,如果没有就加值abc然后再返回地址(此方式的值是存放在字符串池中)String b = “abc”;String c = new String("abc");//在字符串池中找abc,如果有,就不管,如果没有就在对象池中加个abc,然后在堆中建一个对象abc,返回地址(此方式值存放在堆中的)String d = new String("abc");a ==b truea.equal(b) tr原创 2011-04-17 18:10:00 · 5004 阅读 · 1 评论 -
抽象类和接口的区别
一 .语法上的区别 1.1 接口是一种特需的抽象类 1.2 java种可以实现多个接口 不能继承多个抽象类 1.3 抽象类中默认的变量是friendly 类型的,其值可以在子类中重新定义和赋值 接口中只有静态成员变量 public static final 其原创 2011-06-21 15:04:00 · 759 阅读 · 0 评论 -
Camparable与Comparator的区别
1. 实现Camparable接口可以直接使用sort方法Collections.sort(List list)排序2. 实现Comparator接口的可以用Collections.sort(List list, Comparator c)排序 3原创 2011-09-08 11:57:52 · 797 阅读 · 0 评论 -
集合类(数据结构图、集合图、集合之间的比较)
数据结构图 集合类图 .容器中装的都是对象,因为它要把对象放到堆上面,但是1.5后就可以自动包装 map.put("one",new Integer(1)) 1.5后可以 map.put原创 2011-05-17 14:54:00 · 7931 阅读 · 0 评论 -
集合从原理的总结
1. Set和Map都是用来查询的用的,增加 删除 包含 速度都非常的快,因为他们存放的时候进行了优化。比如HashMap就是以hash算法来存放,TreeMap就是以二叉树进行存储。而对应的HashSet的底层实现是HashMap的key的部分,TreeSet的底层原创 2011-09-11 22:14:51 · 605 阅读 · 0 评论 -
用成员变量还是局部变量
转载 2012-08-18 13:48:40 · 661 阅读 · 0 评论