随笔分类 - [技术]Java
摘要:1.学习了解GC垃圾回收 参考:https://www.ibm.com/developerworks/cn/java/l-JavaMemoryLeak2/ 2.类加载机制 http://blog.csdn.net/gjanyanlig/article/details/6818655/ 深入探讨 Java 类加载器 https://www.ibm.com/developerworks/cn/...
阅读全文
摘要:下载 https://visualvm.github.io/ 检测远程服务器 转自:http://blog.csdn.net/yangkangtq/article/details/52277794 授权方法 进入远程服务器的JAVA_HOME目录,到bin目录下。 新建文件jstatd.all.policy,内容如下: grant codebase "file:${...
阅读全文
摘要:转自:https://my.oschina.net/sub/blog/182408 在 Web 中,我们通常需要获取 URL 相对于 Webapp 的路径,主要是下面的几个方法: request.getServletPath() request.getPathInfo() request.getContextPath() request.getRequestURI() getContextP...
阅读全文
摘要:转自:http://blog.csdn.net/chenssy/article/details/38151189 在JDK的Collection中我们时常会看到类似于这样的话: 例如,ArrayList: 注意,迭代器的快速失败行为无法得到保证,因为一般来说,不可能对是否出现不同步并发修改做出任何硬性保证。快速失败迭代器会尽最大努力抛出 ConcurrentModif...
阅读全文
摘要:转自:http://blog.csdn.net/paincupid/article/details/47746341 一、HashMap和TreeMap区别 1.HashMap是基于散列表实现的,时间复杂度平均能达到O(1)。 TreeMap基于红黑树(一种自平衡二叉查找树)实现的,时间复杂度平均能达到O(log n)。 2、HashMap、TreeMap都继承AbstractM...
阅读全文
摘要:转自:https://my.oschina.net/u/2249714/blog/612753?p=1 在工作和学习中,经常碰到删除ArrayList里面的某个元素,看似一个很简单的问题,却很容易出bug。不妨把这个问题当做一道面试题目,我想一定能难道不少的人。今天就给大家说一下在ArrayList循环遍历并删除元素的问题。首先请看下面的例子: ...
阅读全文
摘要:转自:http://www.cnblogs.com/gw811/archive/2012/10/18/2730117.html 本文引用自:深入理解Java虚拟机的第2章内容 Java与C++之间有一堵由内存动态分配和垃圾收集技术所围成的高墙,墙外面的人想进去,墙里面的人却想出来。 概述: 对于从事C和C++程序开发的开发人员来说,在内存管理领域,他们既是拥有最高权力的皇帝,又是...
阅读全文
摘要:转自:http://blog.sina.com.cn/s/blog_69dcd5ed0101171h.html 1. 首先String不属于8种基本数据类型,String是一个对象。 因为对象的默认值是null,所以String的默认值也是null;但它又是一种特殊的对象,有其它对象没有的一些特性。 2. new String()和new String(“”)都是申明一个新的空字符串,...
阅读全文
摘要:Java的四种内部类包括如下: 成员内部类 静态内部类 局部内部类 匿名内部类 成员内部类: 定义在另一个类(外部类)的内部,而且与成员方法和属性平级叫成员内部类,......相当于外部类的非静态方法,如果被static修饰,就变成静态内部类了。 注意事项: 成员内部类中不能存在static关键字,即,不能声明静态属性、静态方法、静态代码块等。【非静态内部...
阅读全文
摘要:转自http://www.cnblogs.com/nerxious/archive/2013/01/25/2876489.html 匿名内部类也就是没有名字的内部类 一般形式如下:new 接口/父类(){ 方法定义} 正因为没有名字,所以匿名内部类只能使用一次,它通常用来简化代码编写 但使用匿名内部类还有个前提条件:必须继承一个父类或实现一个接口 实例1:不使用匿名内部类来实现抽象方法 ...
阅读全文
摘要:public class A{}public class B extends A {}一个方法中如下定义:public List funName(List a){}如下调用时报错List params;List b = funName(params);////////////////////////...
阅读全文
摘要:自动编译脚本 build.sh, 放置在项目根目录下。 #!/bin/bash
# check args
# init path
CURRPATH=`pwd`
LIBDIR="$CURRPATH/WebContent/WEB-INF/lib"
SRC="$CURRPATH/src"
CLASS="$CURRPATH/WebContent/WEB-INF/classes"
if [...
阅读全文
摘要:Java NIO和阻塞IO的区别:
阻塞I/O在调用InputStream.read()方法时是阻塞的,它会一直等到数据到来时(或超时)才会返回;同样,在调用ServerSocket.accept()方法时,也会一直阻塞到有客户端连接才会返回,每个客户端连接过来后,服务端都会启动一个线程去处理该客户端的请求。 阻塞I/O的缺点: 1. 当客户端多时,会创建大量的处理线程。且每个线程都要占用栈空...
阅读全文
摘要:在单独的线程中,检查多个通道是否可以进行IO操作。 Selector创建:静态工厂方法创建 Selector selector = Selector.open(); 注册通道 channel.configureBlocking(false);
SelectionKey key = channel.register(selector, Selectionkey.OP_READ)...
阅读全文
摘要:channel与流的区别: 流基于字节,且读写为单向的。
通道基于快Buffer,可以异步读写。除了FileChannel之外都是双向的。 channel的主要实现: FileChannel
DatagramChannel:UDP读写
SocketChannel:TCP读写
ServerSocketChannel 支持scatter/gather(分散和聚集) 分散(scatte...
阅读全文
摘要:Java NIO的核心部件: Buffer
Channel
Selector Buffer
是一个数组,但具有内部状态。如下4个索引: capacity:总容量
position:下一个要读取/写入的元素索引
limit:限制,第一个不能读取/写入的元素索引
mark:位置标记,重置position
//通过调用Buffer.mark()方法,可以标记Buffer中的一个特定positio...
阅读全文
摘要:被代理的接口特点: 1. 不能有重复的接口,以避免动态代理类代码生成时的编译错误。 2. 这些接口对于类装载器必须可见,否则类装载器将无法链接它们,将会导致类定义失败。 3. 需被代理的所有非 public 的接口必须在同一个包中,否则代理类生成也会失败。 4. 接口的数目不能超过 65535,这是
阅读全文
摘要:服务器端代码如下:
IHello接口: import java.rmi.Remote;
import java.rmi.RemoteException; public interface IHello extends Remote { /** * @return return hellowold * @throws java.rmi.RemoteExcepti...
阅读全文
摘要:Java语言的关键字,当它用来修饰一个方法或者一个代码块的时候,能够保证在同一时刻最多只有一个线程执行该段代码。 1. 当两个并发线程访问同一个对象object中的这个synchronized(this)同步代码块时,一个时间内只能有一个线程得到执行。另一个线程必须等待当前线程执行完这个代码块以后才能执行该代码块。
2. 当一个线程访问object的一个synchronized(this)同步...
阅读全文
摘要:在需要使用代理的地方添加如下code: System.getProperties().put("socksProxySet","true"); System.getProperties().put("socksProxyHost","localhost"); System.getProperties().put("socksProxyPort","7575");
阅读全文