java
文章平均质量分 77
zll0927
这个作者很懒,什么都没留下…
展开
-
java中FileInputStream,FileReader等的区别
FileInputStream,FileReaderC语言只需要一个File*就可以了,与C不同,java有一系列流类型,其数量超过60种。类库的设计者声称:“有足够的理由为用户提供丰富的流类型的选择:这样做可以减少程序的错误。”例如,在C语言种,许多人认为“将输出流写入一个只读模式的文件”是很常见的错误。(事实上,这并不常见。)我们认为在C++语言中,流接口设计者避免程序出错原创 2013-05-13 17:00:28 · 577 阅读 · 0 评论 -
JAVA线程wait, notify, sleep详解
在JAVA中,是没有类似于PV操作、进程互斥等相关的方法的。JAVA的进程同步是通过synchronized()来实现的,需要说明的是,JAVA的synchronized()方法类似于操作系统概念中的互斥内存块,在JAVA中的Object类型中,都是带有一个内存锁的,在有线程获取该内存锁后,其它线程无法访问该内存,从而实现JAVA中简单的同步、互斥操作。明白这个原理,就能理解为什么synchron原创 2013-10-25 19:13:32 · 793 阅读 · 0 评论 -
Java中的Object的Wait() 和notify()方法使用时应注意的地方
Wait()和notify():如果条件不满足,则等待。当条件满足时,等待该条件的线程将被唤醒。一般用在synchronized机制中。例如:线程A synchronized(obj) { while(!condition) { obj.wait();原创 2013-10-25 19:05:10 · 937 阅读 · 0 评论 -
java native关键字
一. 什么是Native Method 简单地讲,一个Native Method就是一个java调用非java代码的接口。一个Native Method是这样一个java的方法:该方法的实现由非java语言实现,比如C。这个特征并非java所特有,很多其它的编程语言都有这一机制,比如在C++中,你可以用extern "C"告知C++编译器去调用一个C的函数。 "A native m原创 2013-10-25 16:26:12 · 520 阅读 · 0 评论 -
Java虚拟机工作原理详解
一、类加载器首先来看一下java程序的执行过程。 从这个框图很容易大体上了解java程序工作原理。首先,你写好java代码,保存到硬盘当中。然后你在命令行中输入[java] view plaincopyjavac YourClassName.java原创 2013-09-28 23:51:56 · 622 阅读 · 0 评论 -
java synchronized
记下来,很重要。Java语言的关键字,当它用来修饰一个方法或者一个代码块的时候,能够保证在同一时刻最多只有一个线程执行该段代码。 一、当两个并发线程访问同一个对象object中的这个synchronized(this)同步代码块时,一个时间内只能有一个线程得到执行。另一个线程必须等待当前线程执行完这个代码块以后才能执行该代码块。二、然而,当一个线程访问object的一个synchron原创 2013-10-11 13:46:39 · 626 阅读 · 0 评论 -
Java 集合类详解
有序否允许元素重复否Collection否是List是是SetAbstractSet否否HashSetTreeSet是(用二叉树排序)MapAbstractMa原创 2013-10-10 14:14:50 · 713 阅读 · 0 评论 -
Java7中的switch支持String的实现细节
在Java7之前,switch只能支持 byte、short、char、int或者其对应的封装类以及Enum类型。在Java7中,呼吁很久的String支持也终于被加上了。 例如,下面是一段switch中使用String的示例代码。 01public class Test {02原创 2013-10-08 16:09:09 · 597 阅读 · 0 评论 -
深入Java核心 Java内存分配原理精讲
栈、堆、常量池虽同属Java内存分配时操作的区域,但其适用范围和功用却大不相同。本文将深入Java核心,详细讲解Java内存分配方面的知识。Java内存分配与管理是Java的核心技术之一,之前我们曾介绍过Java的内存管理与内存泄露以及Java垃圾回收方面的知识,今天我们再次深入Java核心,详细介绍一下Java在内存分配方面的知识。一般Java在内存分配时会涉及到以下区域:◆原创 2013-10-06 21:17:41 · 540 阅读 · 0 评论 -
Java 成员变量 静态块 构造块 构造方法执行顺序测试
public class T3 { static int k=0; static int i=print("i"); static T3 t=new T3(1); static String x="xxx"; static int m=print("m"); int j=print("j"); int s=print("s"); T3(int a) { System.out.原创 2013-09-23 07:40:20 · 976 阅读 · 0 评论 -
JAVA中String与StringBuffer的区别
String和StringBuffer的区别,网上资料可以说是数不胜数,但是看到这篇文章,感觉里面做的小例子很有代表性,所以转一下,并自己做了一点总结。 在java中有3个类来负责字符的操作。1.Character 是进行单个字符操作的,2.String 对一串字符进行操作。不可变类。3.StringBuffer 也是对一串字符进行操作,但是可变类。原创 2013-10-04 21:37:44 · 633 阅读 · 0 评论 -
Java运算符优先级整理
自整理:口诀:括单算关位逻条赋括() []单(从右向左)! +(正) -(负) ~ ++ -- .算* / % ---->>>> + - ---->>>> > >>> ---->>>>关 >= instanceof ---->>>> == !=位& ^ |逻&& ---->>>> ||条?:赋(从右向左)= += -+ *= /=原创 2013-10-04 13:55:24 · 5768 阅读 · 1 评论 -
java中的IO整理
java中的IO整理写在前面:本文章基本覆盖了java IO的全部内容,java新IO没有涉及,因为我想和这个分开,以突出那个的重要性,新IO哪一篇文章还没有开始写,估计很快就能和大家见面。照旧,文章依旧以例子为主,因为讲解内容的java书很多了,我觉的学以致用才是真。代码是写出来的,不是看出来的。最后欢迎大家提出意见和建议。【案例1】创建一个新文件?原创 2013-10-03 13:27:39 · 518 阅读 · 0 评论 -
JAVA的位移运算巧方法
左移操作: x x可以是byte, short, char, int, long基本类型, n(位移量)只能是int型 编译器的执行步骤: 1) 如果x是byte, short, char类型, 则将x提升为int; 2) 如果x是byte, short, char, int类型, 则n被重新赋值(过程是:取n的补码的低5位再转成十进制的int值,相当对n原创 2013-10-04 12:22:00 · 866 阅读 · 0 评论 -
UNICODE,GBK,UTF-8区别
简单来说,unicode,gbk和大五码就是编码的值,而utf-8,uft-16之类就是这个值的表现形式.而前面那三种编码是一兼容的,同一个汉字,那三个码值是完全不一样的.如"汉"的uncode值与gbk就是不一样的,假设uncode为a040,gbk为b030,而uft-8码,就是把那个值表现的形式.utf-8码完全只针对uncode来组织的,如果GBK要转UTF-8必须先转uncode码,再转原创 2013-05-13 17:05:16 · 572 阅读 · 0 评论 -
Java栈与堆
J----对这两个概念的不明好久,终于找到一篇好文,拿来共享 1. 栈(stack)与堆(heap)都是Java用来在Ram中存放数据的地方。与C++不同,Java自动管理栈和堆,程序员不能直接地设置栈或堆。 2. 栈的优势是,存取速度比堆要快,仅次于直接位于CPU中的寄存器。但缺点是,存在栈中的数据大小与生存期必须是确定的,缺乏灵活性。另外,栈数据可以共享,详见第3点。堆原创 2013-06-17 00:33:00 · 426 阅读 · 0 评论 -
使用JDBC时Class.forName()的作用
使用JDBC时,我们都会很自然得使用下列语句:java 代码Class.forName("com.mysql.jdbc.Driver"); String url = "jdbc:mysql://127.0.0.1/test?useUnicode=true&characterEncoding=utf-8"; String user = ""; String原创 2013-06-12 22:11:10 · 529 阅读 · 0 评论 -
Class.forName
Class.forName(xxx.xx.xx) 返回的是一个类首先你要明白在java里面任何class都要装载在虚拟机上才能运行。这句话就是装载类用的(和new 不一样,要分清楚)。 至于什么时候用,你可以考虑一下这个问题,给你一个字符串变量,它代表一个类的包名和类名,你怎么实例化它?只有你提到的这个方法了,不过要再加一点。 A a = (A)Class.forName("pac原创 2013-06-12 22:06:21 · 646 阅读 · 0 评论 -
Java之异常与错误的区别及java的异常体系
异常和错误的区别异常: 在Java中程序的错误主要是语法错误和语义错误,一个程序在编译和运行时出现的错误我们统一称之为异常,它是VM(虚拟机)通知你的一种方式,通过这种方式,VM让你知道,你(开发人员)已经犯了个错误,现在有一个机会来修改它。Java中使用异常类来表示异常,不同的异常类代表了不同的异常。但是在Java中所有的异常都有一个基类,叫做Exception。错误:它指的是一原创 2013-10-31 00:16:21 · 551 阅读 · 0 评论