java
文章平均质量分 67
naughty610
follow me sina weibo : http://weibo.com/naughty610
展开
-
使用java执行linux系统命令
<br />public class test { public static void main(String args[]) { try { Runtime.getRuntime().exec("自己的命令"原创 2010-07-07 15:41:00 · 941 阅读 · 0 评论 -
java中可变类型和不可变类型
可变类和不可变类(Mutable and Immutable Objects)的初步定义:可变类:当你获得这个类的一个实例引用时,你可以改变这个实例的内容。不可变类:当你获得这个类的一个实例引用时,你不可以改变这个实例的内容。不可变类的实例一但创建,其内在成员变量的值就不能被修改。 如何创建一个自己的不可变类:.所有成员都是private.不提供对成员的改变方法,例如:setXXX转载 2011-07-07 00:20:54 · 9509 阅读 · 0 评论 -
java传值和传引用的思考
关于java传值和传引用的思考今天写的几行代码颠覆了我对值和引用的观念。java中原始类型的数据,传递的都是值。对象类型传递的都是引用,这是传统上java的死板教程,没有问题。但是当传递一个null对象的引用进去呢?package test2;public class M { public static void main(String[] args) throws Exc原创 2012-05-01 12:01:11 · 1117 阅读 · 2 评论 -
Java中Enum的使用
package com.zoer.src;public enum WeekDay { Mon_("Monday"), Tue_("Tuesday"), Wed_("Wednesday"), Thu_("Thursday"), Fri_( "Friday"), Sat_("Saturday"), Sun_("Sunday"); private final String day;原创 2012-07-17 10:28:28 · 2098 阅读 · 0 评论 -
java序列化与反序列化
本人在接触过程中有两个帖子写的不错,在此整理一下:1.序列化:将对象转化成流的过程称为序列化 反序列化:将流转化成对象的过程称之为反序列化2.对象序列化(Serializable)是指将对象转换为字节序列的过程,而反序列化则是根据字节序列恢复对象的过程。上面这两个解释都通俗易懂。序列化经常用在一下过程中:1.永久性保存对象,保存对象的字节序列到本地文件中;2.通原创 2010-02-02 21:02:00 · 535 阅读 · 0 评论 -
java的同步机制synchronize
需要注意的就是,java的syn关键字最终是由native的物理锁实现的。使用syn关键字,我认为效率低下的原因,不仅仅是其他线程需要等待,而且是因为第一、需要底层调用。这应该就是concurrent包出现的原因。第二、其他线程在等待的时候,需要挂起和唤醒,这个挂起和唤醒的动作只有操作系统才能做。也就是需要操作系统的帮忙,也就是说程序需要从用户态转换为核心态。这就无疑加重了应用的负担。转载 2012-04-05 00:21:55 · 3188 阅读 · 2 评论 -
java 多线程之 wait(),notify(),notifyAll()以及经典的生产者消费者模型
http://www.cnblogs.com/anran_guojianjun/archive/2009/04/14/1435278.html wait(),notify(),notifyAll()不属于Thread类,而是属于Object基础类,也就是说每个对像都有wait(),notify(),notifyAll()的功能.因为都个对像都有锁,锁是每个对像的基础,当然操作锁的转载 2010-02-09 18:59:00 · 765 阅读 · 0 评论 -
java通过telnet执行命令
/** * commons-net-2.0.jar是工程依赖包 */import java.io.InputStream;import java.io.PrintStream;import org.apache.commons.net.telnet.TelnetClient;public class NetTelnet { private TelnetClient原创 2010-07-09 14:12:00 · 25280 阅读 · 6 评论 -
java中的深复制和浅复制
Java语言的一个优点就是取消了指针的概念,但也导致了许多程序员在编程中常常忽略了对象与引用的区别,本文会试图澄清这一概念。并且由于Java不能通过简单的赋值来解决对象复制的问题,在开发过程中,也常常要要应用clone()方法来复制对象。本文会让你了解什么是影子clone与深度clone,认识它们的区别、优点及缺点。 看到这个标题,是不是有点困惑:Java语言明确说明取消了指针转载 2011-07-12 00:25:55 · 9028 阅读 · 5 评论 -
java中hashCode函数的作用
hashcode方法返回该对象的哈希码值。hashCode()方法可以用来来提高Map里面的搜索效率的,Map会根据不同的hashCode()来放在不同的位置,Map在搜索一个对象的时候先通过hashCode()找到相应的位置,然后再根据equals()方法判断这个位置上的对象与当前要插入的对象是不是同一个。所以,Java对于eqauls方法和hashCode方法是这样规定的:1、如果转载 2011-11-30 16:11:34 · 3716 阅读 · 3 评论 -
java中一般异常和运行时异常的区别
Java提供了两类主要的异常:runtime exception和checked exception。checked异常也就是我们经常遇到的IO异常,以及SQL异常都是这种异常。对于这种异常,JAVA编译器强制要求我们必需对出现的这些异常进行catch。所以,面对这种异常不管我们是否愿意,只能自己去写一大堆catch块去处理可能的异常。 但是另外一种异常:runti原创 2011-02-21 17:36:00 · 16404 阅读 · 7 评论 -
java反射
Class.forName("java.lang.Integer").newInstance();利用反射机制来创建一个新的对象。同时可以改变对象的属性的access级别。比如说原来的一个属性age是private的【而且也没有getName方法,总之,在类的外部看不到这个属性】,那么可以通过获取一个代表这个name的field对象,然后以通过namefield.setAccessible(t原创 2010-08-17 22:12:00 · 635 阅读 · 0 评论 -
javap
javap -c A 可以查看A.class文件的内容。。【人至笨则无敌】原创 2014-02-08 17:41:24 · 1990 阅读 · 0 评论 -
Java虚拟机-Firstday
许久没看java的东西了。java用多了就不想再多看什么没用的费代码,也不想再写这种代码了。还是看看虚拟机。写正文:1、本来以为一台机器上只有一个java虚拟机的。但是看了《深入java虚拟机》之后,才知道,原来每次执行一个java程序,都有一个java虚拟机实例,当程序结束之后,虚拟机实例也随之结束。2、java中的8中基本数据类型,其中boolean比较特殊:虚拟机会用int或原创 2011-12-11 11:29:27 · 742 阅读 · 0 评论 -
java实现远程文件的读取
<br />客户端:<br />package com.test.plainclass;import java.io.*;import java.net.*;public class RemoteFileClient { protected Str原创 2010-07-09 01:05:00 · 1727 阅读 · 0 评论 -
SWT学习:FillLayout布局
FillLayout是非常简单的一种布局方式,它会以同样大小对父组件中的子组件进行布局,这些子组件将以一行或一列的形式排列。一般来说,用户可以在任务栏、工具栏中放置FillLayout布局,通过FillLayout布局对子组件进行定位,也可以当子组件只有一个组件时,通过 FillLayout布局填充整个父组件的空间。在FillLayout布局中,可以把子组件按水平或垂直的方式进行排列。pack原创 2010-02-11 22:30:00 · 1440 阅读 · 0 评论 -
转来的:java中静态块和构造函数的执行顺序问题
public class Test2 extends TestStatic{ static{ System.out.println("b"); } Test2(){ System.out.println(2); }public static void main(String args[]){ TestStatic A=new原创 2010-02-04 16:19:00 · 550 阅读 · 0 评论 -
有时间看了点java中泛型的实现
有点时间,看看泛型的实现。发现java中ArrayList原来效率真的不是很高。整个ArrayList里面就是维护一个数组和一个int型的size大小。private transient E[] elementData;无论是add或者是remove,都是通过System.arraycopy实现的。add的时候如果数组空间不够,是一个重复申请数组的过程。remove是一原创 2011-11-30 15:47:30 · 1406 阅读 · 0 评论 -
Java虚拟机-ThirdDay
关于java多线程1、在java中,Object类中的wait和notify、notifyall用于实现线程之间的协作。用syn关键字来实现互斥。 关于类的锁和对象的锁,书中是这样描述的:类锁是用对象锁实现的。在虚拟机加载class文件的时候,给加载的相应的类一个Class实例。那么在这个class实例上加锁,就实现了类的锁。 使用s原创 2011-12-12 13:47:34 · 539 阅读 · 0 评论 -
Java虚拟机-SecondDay
Java的Class文件、变量生命周期以及垃圾回收 java的class文件是8位字节的二进制流。数据项按照顺序存储在class文件中。相邻数据项之间没有任何间隔。这样可以让class文件更加紧凑。占用多个字节空间的项目按照从高位到低位的顺序分成几个连续的字节存放。class文件包含的项目是可变大小的。可变项长度位于其数据之前。1、虚拟机区分是不是class文件的标记如原创 2011-12-11 14:37:25 · 653 阅读 · 0 评论 -
StringBuilder的内部实现
StringBuilder的内部实现:先看看效率。package com.zoer.T;public class Main { public static void main(String[] args) { String text = ""; long beginTime = System.currentTimeMillis(); for (int i = 0; i原创 2012-03-04 20:36:59 · 5227 阅读 · 0 评论 -
java的Error和Exception的区别联系
Error类和Exception类都继承自Throwable类。Error的继承关系:Exception的继承关系:二者的不同之处:Exception:1.可以是可被控制(checked) 或不可控制的(unchecked)。2.表示一个由程序员导致的错误。3.应该在应用程序级被处理。Error:1.总是不可控制的(unchecked)。2.经常用来转载 2012-03-28 00:00:36 · 1150 阅读 · 0 评论 -
JavaSet的源码分析
Java中,set能保证列表中元素唯一,map就是用来key-value用的东西。先看Set。首先Set是个接口,最常见的实现有HashSet,LinkedHashSet,和同步Set。看HashSet的源码,其他应该类似(只是加上了特定功能,比如使用链表、加上同步机制等)。public class HashSet extends AbstractSet implements原创 2012-03-15 23:12:55 · 3151 阅读 · 0 评论 -
java中PrintStream和PrintWriter的区别
Java 输出流中的PrintStream 和PrintWriter有什么区别,好像很多场合都能混用。比如用于网络间通信,发送消息时,可用PrintStream 也可用PrintWriter eg: Socket client; PrintStream output = newPrintStream(client.getOutpu转载 2011-07-07 13:30:50 · 1984 阅读 · 0 评论 -
Future和FutureTask的使用
java中提供了futuretask供异步任务使用。可以将一个任务提交给后台线程执行,当需要执行结果的时候调用task.get函数。如果后台线程还没有执行完,那么task.get将会阻塞,直到后台线程返回。如果后台线程已经执行完,则直接返回结果。package com.z;import java.util.Date;import java.util.concurrent.*;pu原创 2014-08-31 17:44:18 · 11961 阅读 · 0 评论