`
leozam
  • 浏览: 29189 次
社区版块
存档分类
最新评论
文章列表

jdk1.8在线源码

想要看JDK源码,可以用IDE+源码JAR的方式查看。 以下介绍个更方便地查看JDK源码的方式。 直接上URL https://code.csdn.net/hty1053240123/jdk-source/tree/master 这样只要有网络,就可以随时随地查看JDK源码了。 (注:源码为JDK1.8源码) 引用:http://blog.csdn.net/hty1053240123/article/details/52858123
1.Java类加载器 按加载的顺序分为 A 引导类加载器 Boostrap Classloader 加载jre/lib/rt.jar里所有的class,由C++实现,不是ClassLoader子类 B 扩展类加载器 Extension Classloader 加载jre/lib/*.jar或-Djava.ext.dirs指定目录下的jar包 C 系统加载器 System(App) Classloader 加载classpath中指定的jar包及目录中class D 自定义加载器 Customer Classloader 应用程序根据自身需要自定义的ClassLoader,如tomcat会 ...
1.常见的哈希冲突解决方法: A.开放地址法 B.链地址法(java8以前HashMap使用此法,java8中HashMap引入了平衡树法) C.再散列(二次哈希) D.建立一个公共溢出区 2.Integer中的equals方法 public boolean equals(Object obj) {         if (obj instanceof Integer) {             return value == ((Integer)obj).intValue();         }         return false ; } 故 new Integer(1 ...

final小记

大家都知道final是java中的修饰符之一。 用来修饰类,方法或变量。 本文不讨论以上用法,至少讨论啥呢,请看以下代码: public class Main{ static void normalAdd(){ byte b1=1,b2=1,b3; // b3=b1+b2;//这样写会导致编译无法通过,因为b1+b2会自动升格成int型,int必须被强转才能赋值给byte b3=(byte) (b1+b2);//这样写是正确的 } static void finalAdd(){ final byte b1=1,b2=1,b3; b3=b1+b2;//看 ...
1.外部类,内部类,局部内部类 外部类:只能用public,default修饰符 内部类:可以用所有修饰符,此时内部类相当于外部类的一个成员变量 局部内部类:即方法中定义的类,只能用abstract,final,default修饰符,相当于一个局部变量。 代码示例: public class Main { int MainInt; public static void main(String[] args) { int localInnerInt=0; //局部内部类,与局部变量localInnerInt地位相同 final class FinalLocalInner ...
首先看代码,猜猜结果 public class Base { private String baseName = "base"; public Base() { callName(); } public void callName() { System. out. println(baseName); } static class Sub extends Base { private String baseName ...
CopyOnWriteArrayList 原理:当我们往一个容器添加元素的时候,不直接往当前容器添加,而是先将当前容器进行Copy,复制出一个新的容器,然后新的容器里添加元素,添加完元素之后,再将原容器的引用指向新的容器 特点:读写分离。读的时候不需要加锁,写的时候需要加锁。适用于读多写少的场景 不足:内存占用过大(写操作时将对对象进行复制);只能保证数据最终一致性,而非实时一致性 参考:http://www.cnblogs.com/dolphin0520/p/3938914.html ReadWriteLock 特点:对读写状态进行互斥区分,有互斥时才加锁。写与写之间互斥,读与写之 ...
先给代码,猜猜结果 public class TestClass { private static void staticMethod(){ System.out.println("static"); } void normalMethod(){ System.out.println("normal"); } public static void main(String[] args) { TestClass testClass=((TestClass)null); testClass.staticMetho ...
1.Socket: 服务端通过new ServerSocket()创建ServerSocekt对象,当客户端连接时才创建Socket对象。 Socket s=new ServerSocetk().accept(); 2.volatile volatile禁止指令重排序,限定变量只能从内在中读取。 但其不能保证原子性,不能保证线程安全。 3.AWT&Swing AWT 是基于本地方法,其运行速度比较快; Swing基于AWT的Java程序,其运行速度比较慢。 4.HashMap hashTable中使用synchronized关键字来实现安全机制; concurrentHashMap ...
1.JVM 方法区和堆 都是线程共享的 2.Propagation-Required 支持事务,没有就新建 (最常见的选择) 3.CGI不可移植,为某一特定平台编写的CGI应用只能运行在这一环境中 4.doGet/doPost是在javax.servlet.http.HttpServlet中实现的 5.创建Servlet实例由Servlet容器完成,创建实例在init()方法之前 6.Servlet在多线程下不是线程安全的 7.Struts1 单例 Struts2 非单例 8.JSP 静态include不允许变量同名 9.JVM -Xmx 最大堆大小(max) -Xms 初始 ...
Eclipse工作区突然无法编辑代码,触发原因未知 按 Ctrl+Alt+S 即可恢复正常,原因未知... 查询Eclipse各快捷键的说明(Window->Preferences->General->Keys) 找到了 Ctrl+Alt+S 组合的说明: Command:Stop Binding:Ctrl+Alt+S When:In Server View Category:Server 大意是,该快捷键的命令是停止的意思,至于为何工作器突然无法编辑代码,还是不太确定,有哪位大大知道的话敬请指教 先记下来,以后再碰到类似情况就不方了
斐波那契数列 1 1 2 3 5 8 13 21... 即每一项都是前两项之和的数列 经典解法是使用递归 不过递归的效率太低,推荐如下代码,只需2个变量存值,效率高 int fibonacci(int n){ int a=1,b=1; for(int i=2;i<n;i++){ //交换a和b,更新a的值 a=a^b; b=a^b; a=a^b; //更新b的值 b=a+b; } return b; } (假设n>0,故没有对n<=0的情况做处理)
有代码如下,猜猜输出结果: public class WaitAndNotify { void method1(Object lock) throws Exception{ synchronized (lock) { lock.wait(); System.out.println("m1"); } } void method2(Object lock) throws Exception{ synchronized (lock) { lock.notify(); Thread.sleep(2000); ...
近日因工作需求,需要调用远程服务器的接口 因以前未深入接触WS,SOAP 所以一开始采用引入AXIS包,从头开始JAVA编码的方式来实行 代码形如: Service service=new Service(); Call call=(Call)service.createCall(); 一碰到复杂的接口,就OMG了。 后查阅多方文档,发现JDK自带WSIMPORT工具可以解析WSDL为JAVA代码(神器 ) WINDOWS环境下,直接CMD,然后 WSIMPORT -S JAVA代码存放目录 WSDL地址 (WSIMPORT各参数具体意义可直接百度或GOOGLE,网上讲的 ...
项目中有功能需要读取.properties配置文件中的信息 .properties中有一属性形如下: prop=abc\abc 重点就是上面的反斜杠“\”了 我用的java.net.URLEncoder来encode字符串 结果encode之后变成了 abcabc 反斜杠被忽略掉了... 联想到JAVA里面反斜杠是特殊字符,需要转义 遂将上面的属性改为 pro=abc\\abc 再次encode,得到结果 abc%5Cabc encode成功 TIPS: 要养成良好的编码习惯,一个空格,一个标点都不能轻视
Global site tag (gtag.js) - Google Analytics