随笔分类 - JavaSE_深入浅出
孙鑫JavaSE视频的学习笔记
摘要:jessionid通过这样的方式来从客户端传递到服务器端,从而来标识session。注意一点,jsessionid跟一般的url参数传递方式是不同的,不是作为参数跟在"?"后面,而是紧跟在url后面用";"来分隔。这样在用户禁用cookie的时候我们也可以传递jsessionid来使用session了,只不过需要每次都把jseesionid作为参数跟在url后面传递。那这样岂不是很麻烦,每次请求一个url都要判断cookie是否可用,如果禁用了cookie,还要从url里解析出jsessionid,然后跟在处理完后转到的url后面,以保持jsession
阅读全文
摘要:1. 尽量在合适的场合使用单例使用单例可以减轻加载的负担,缩短加载的时间,提高加载的效率,但并不是所有地方都适用于单例,简单来说,单例主要适用于以下三个方面:第一,控制资源的使用,通过线程同步来控制资源的并发访问;第二,控制实例的产生,以达到节约资源的目的;第三,控制数据共享,在不建立直接关联的条件下,让多个不相关的进程或线程之间实现通信。2. 尽量避免随意使用静态变量要知道,当某个对象被定义为stataic变量所引用,那么gc通常是不会回收这个对象所占有的内存,如Java代码 public class A{ static B b = new B(); } 此时静...
阅读全文
摘要:1.5新特性 1:泛型(Generic) 2.for-each循环 3.自动装包/拆包(Autoboxing/Unboxing) 4.枚举(Enums) 5.可变参数(Varargs) 6.Annotations(注释) 7.新的线程模型和并发库(java.util.concurrent.*) 8.静态导入(Static import) //使用静态导入可以使被导入类的所有静态变量和静态方法在当前类直接可见,使用这些静态 //成员无需再给出他们的类名
阅读全文
摘要:-verbose:class //查看类的加载顺序类的加载: bootstrap class loader //核心类加载器,由机器本地语言编写 extesion class loader //扩展的类加载器,用于加载jre/lib/ext下的jar包 application class loader //用于加载用户定义的类,application class loader 被 extesion class loader加载 URLClassLoader //用户加载网络类,例如applet程序 //java中有非常多的类加载器ISO七层参考模型: 物理...
阅读全文
摘要:package com.kk.array;import java.io.BufferedInputStream;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;public class RunTimeTest { public static void main(String[] args) { try { Process process =Runtime.getRuntime().exec("ping www.baidu.com...
阅读全文
摘要:package com.kk.array;import java.lang.reflect.Constructor;import java.lang.reflect.Method;public class ArrayTest { public static void main(String[] args) throws Exception{ dynamicGetInstance("com.kk.array.P"); } /* * 数组拷贝 */ static void arrayCopy(){ int []num1={...
阅读全文
摘要:package com.kk.innerClass;/** * 通过内部类实现接口 * 解决多个接口中方法重名问题 * */interface Machine { void run();}class Person { void run() { System.out.println("person start"); }}public class Android extends Person { private class MachineHeart implements Machine { public void run() { ...
阅读全文
摘要:package com.kk.innerClass;/** * 继承内部类 * */public class Car { class Wheel { }}class PlaneWheel extends Car.Wheel { public PlaneWheel(Car car) { car.super(); } public static void main(String[] args) { Car car = new Car(); PlaneWheel pw = new PlaneWheel(car); }}
阅读全文
摘要:package com.kk.innerClass;class Outer { private int index = 100; class Inner { int index=200; void print() { int index=300; //内部类中可以访问外部类的私有成员变量及方法 System.out.println(index); System.out.println(this.index); System.out.println...
阅读全文
摘要:package com.kk.array;import java.io.BufferedInputStream;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;public class RunTimeTest { public static void main(String[] args) { try { Process process =Runtime.getRuntime().exec("ping www.baidu.com...
阅读全文
摘要:package com.kk.array;import java.lang.reflect.Constructor;import java.lang.reflect.Method;public class ArrayTest { public static void main(String[] args) throws Exception{ dynamicGetInstance("com.kk.array.P"); } /* * 数组拷贝 */ static void arrayCopy(){ int []num1={...
阅读全文
摘要:package com.kk.thread;/* * 本类演示死锁的形成 * 基本数据类型是不能作为同步块的参考,例:int b;synchronized(b) */public class TicketsSystem { public static void main(String[] args)throws Exception { SellThread sell=new SellThread(); new Thread(sell).start(); Thread.sleep(1);//让thread1执行,此时b=false; ...
阅读全文
摘要:package com.kk.thread;/* * java使用抢占式调度模型 */public class ThreadTest { public static void main(String[] args) { MyThread myThread=new MyThread();//main线程的时间片完后,才执行Mythread的时间片 myThread.setDaemon(true); myThread.start(); myThread.setPriority(Thread.MAX_PRIORITY);//设置线程的执行...
阅读全文
摘要:package com.kk.thread;/** * 不调用stop方法退出线程 * */public class TestThread { public static void main(String[] args) { Thread1 thread=new Thread1(); thread.start(); int index=0; while(true){ if(index++==500){ thread.stopThread(); thr...
阅读全文
摘要:package com.kk.thread;public class Test { public static void main(String[] args) { Queue q=new Queue(); Producer p=new Producer(q); Consumer c=new Consumer(q); c.start(); p.start(); }}class Producer extends Thread { Queue q; public Producer(Queue q) { ...
阅读全文
摘要:package com.kk.thread;/* * 继承Thread和实现Runnable接口都可以实现多线程 * 继承Thread可以修改线程的一些属性,例如name、daemon等 * 一般采用实现Runnable接口 */public class RunableTest { public static void main(String[] args) { RunnableClassTest r = new RunnableClassTest();// new Thread(r).start();// new Thread(r).start...
阅读全文
摘要:ArrayList底层采用数组完成,而LinkedList则是以一般的双向链表(double-linked list)完成,期内每个对象除了数据本身外,还有两个引用 ,分别指向前一个元素和后一个元素。 实现Set接口的hash table(哈希表),依靠HashMap来实现。
阅读全文
摘要:package com.kk.Collection;import java.util.LinkedList;/** * 模拟一个队列 * 先进先出(FIFO) */public class MyQueue { public static void main(String[] args) { MyQueue queue=new MyQueue(); queue.put("a"); queue.put("b"); queue.put("c"); queue.put("d"); System.out.p...
阅读全文
摘要:package com.kk.Collection;import java.util.LinkedList;/** * 模拟一个栈 * 后进先出(LIFO) */public class MyStack { private LinkedList ll=new LinkedList(); //有底的用push,没底的用put public void push(Object o){ ll.addFirst(o); } public Object pop(){ return ll.removeFirst(); } ...
阅读全文
摘要:package com.kk.Collection;import java.util.HashSet;import java.util.Iterator;import java.util.Set;public class HashSetTest { public static void main(String[] args) { Set hashSet=new HashSet(); hashSet.add(new Student(0,"kk")); hashSet.add(new Student(1,"mm")); hashSet....
阅读全文
浙公网安备 33010602011771号