03 2014 档案
摘要:一、了解java的内存大致划分栈:存放基本类型的数据和对象的引用,但对象本身不存放在栈中,而是存放在堆中。堆:存放用new产生的数据静态域:存放在对象中用static定义的静态成员常量池:存放常量二、Java内存分配中的栈在函数中定义的一些基本类型的变量数据和对象的引用变量都在函数的栈内存中分配。 当在一段代码块定义一个变量时,Java就在栈中 为这个变量分配内存空间,当该变量退出该作用域后,Java会自动释放掉为该变量所分配的内存空间,该内存空间可以立即被另作他用。三、Java内存分配中的堆堆内存用来存放由new创建的对象和数组。 在堆中分配的内存,由Java虚拟机的自动垃圾回收器来管理。在
阅读全文
摘要:class Res{ private String name; private String sex; private boolean flag = false; public synchronized void set(String name,String sex) { if(flag) try{this.wait();} catch(Exception e){} this.name = name; this.sex = sex; flag = true; this.notify(); } public synchronized void out() { if(!fla...
阅读全文
摘要:面试的时候,常常会被问到这样一个问题:请您写出一个单例模式(Singleton Pattern)吧。好吧,写就写,这还不容易。顺手写一个:publicfinalclassEagerSingleton {privatestaticEagerSingletonsingObj=newEagerSingleton();privateEagerSingleton(){ }publicstaticEagerSingletongetSingleInstance(){ returnsingObj;}} 这种写法就是所谓的饥饿模式,每个对象在没有使用之前就已经初始化了。这就可能带来潜在的性能问题:如果这个对象很
阅读全文
摘要:/*建立一个文本转换器:客户端给服务器发送文本,服务端将文本转换成大写再返回给客户端,当客户端输入over时,转换结束。客户端:io,键盘录入服务端:网络设备 网络输出流操作的是文本数据 可以选择字符流。*/import java.io.*;import java.net.*;class TransClient{ public static void main(String[] args) throws Exception { InetAddress in = InetAddress.getLocalHost(); Socket s = new Socket(in.getHos...
阅读全文

浙公网安备 33010602011771号