1 线程控制t.join():让主线程进入线程池,等待t执行完才执行。t.sleep():让线程阻塞,休眠一段时间,休眠结束后进入就绪状态。不会释放锁。t.yield():让线程让出CPU,从运行态进入就绪态。可能会接着进入运行态。t.setDaemon():设置为守护线程,非守护线程都死了的时候自动终止。2 线程的分类线程分为:守护线程 用户线程守护线程和用户线程基本上是相同的,唯一区别就是判断JVM何时离开守护线程是用来服务用户线程的。通过在s...
最近一直很郁闷,觉得测试的工作自己不适合,打算转Java后端,以前有点Java的基础,但是已经有快5个月没有敲代码了,学习的东西也丢的差不多了,写个规划,在4月底前把以前的知识学回来。 1.Java基础(1)集合框架(2)泛型(3)并发编程(4)反射机制推荐书籍:Java并发编程实战2.项目实践(1)基础web案例(使用jsp、jdbc实现)(2)使用ssh框架进行开发(至少做两个项目) 3.深入学习(1)Java虚拟机(2)设计模式推荐书籍 hea...
class Point {double x;double y;Point() {x = 0;y = 0;}boolean samePlace(Point p) {return (x == p.x) && (y == p.y);}} vtable 是一个指向static field,method 的指针vtable 被所有属于 Point 类的 Object 共享 有继承时class PtSubClassextends Point {int aNewField;boolean samePlace (Pointp2) {returnfalse;}void sayHi() {System.out.println("hello");} } 覆盖原来的 samePlace, 在后面加入 aNewField, sayHi。 原文...
java的加密与解密技术: 现在的加密技术主要有 单向加密算法:以MD5 SHA算法为代表 对称加密算法:以DES 三重DES AES PBE算法为代表 非对称加密算法:以RSA为代表 简要的说下这三种加密算法的区别 先是单向加密算法,顾名思义,它不会有密钥,因为它是单向的,加密之后无法解密,就连程序猿都无法知道加密之后的东西是什么 主要用处是数据完整性的验证。 对称加密算法,其特征是公钥与私钥相同。一般用来数据...
最近准备写点Javase的东西,希望可以帮助大家写出更好的代码。1、给不可实例化的类提供私有构造器比如:每个项目中都有很多工具类,提供了很多static类型的方法供大家使用,谁也不希望看到下面的代码:TextUtils textUtils = new TextUtils();if(textUtils.isDigitsOnly("123")){//doSometing}else{//doSomething}自己写个工具类,总有人喜欢先初始化个实例在调用方法,然后还附带一个警告:The static method isDigitsOnly(CharSe...
文档版本开发工具测试平台工程名字日期作者备注V1.02016.06.17lutianfeinone动态代理代理对象存在的价值:主要用于拦截对真实业务对象的访问。代理对象有什么方法?现在要生成某一个对象的代理对象,这个代理对象通常也要编写一个类来生成,所以首先要编写用于生成代理对象的类。如何编写生成代理对象的类,两个要素:代理谁如何生成代理对象代理谁?设计一个类变量,以及一个构造函数,记住代理类 代理哪个对象。如何生成代理对象...
Java进阶(三十一) Web服务调用前言 有朋友问了一个问题:如何调用已知的音乐服务接口,服务文档如下: https://www.evernote.com/shard/s744/sh/c37cd503-68fc-4406-b8f2-5e90095be303/19b67e36aa2ccd19 查看代码之后,按照以往的服务调用方法实现,结果无法实现。很是费解,求教大师兄之后,问题,迎刃而解,只能说自己需要学习的地方还有很多。 完整代码如下:package plan.http.util;import java.io.IOExcepti...
一、动态代理概述: 与静态代理对照(关于静态代理的介绍 可以阅读上一篇:JAVA设计模式之 代理模式【Proxy Pattern】), 动态代理类的字节码是在程序运行时由Java反射机制动态生成。 注意: 1、AspectJ是采用编译时生成AOP代理类,具有更好的性能,但是需要使用特定的编译器进行处理 2、Spring AOP采用运行时生成AOP代理类,无需使用特定编译器进行处理,但是性能相对于AspectJ较差二、JDK动态代理 [对有实现接...
Java基础1、List 和 Set 的区别2、HashSet 是如何保证不重复的3、HashMap 是线程安全的吗,为什么不是线程安全的(最好画图说明多线程环境下不安全)?4、HashMap 的扩容过程5、HashMap 1.7 与 1.8 的 区别,说明 1.8 做了哪些优化,如何优化的?6、final finally finalize7、强引用 、软引用、 弱引用、虚引用8、Java反射9、Arrays.sort 实现原理和 Collection 实现原理10、LinkedHashMap的应用11、cloneable接口实现原理12、异常分...
1.Map主要实现类 HashMap<K,V>(无序集合) 集合底层是哈希表 由数组加单向链表或红黑树HashMap主要子类 LinkedHashMap<K,V> (可预知的迭代顺序)集合底层是哈希表加链表 存储和取出元素的顺序是一致的Map接口中定义了很多方法,常用的如下:(1)public V put(K key, V value) : 把指定的键与指定的值添加到Map集合中。 存键值对的时候,key不重复,返回值V是null 存键值对的时候,key重复,会使用新的value替换旧的,返回...
BIO、NIO、AIONIO vs IO之间的理念上面的区别(NIO将阻塞交给了后台线程执行) IO是面向流的,NIO是面向缓冲区的 Java IO面向流意味着每次从流中读一个或多个字节,直至读取所有字节,它们没有被缓存在任何地方;NIO则能前后移动流中的数据,因为是面向缓冲区的IO流是阻塞的,NIO流是不阻塞的 Java IO的各种流是阻塞的。这意味着,当一个线程调用read() 或 write()时,该线程被阻塞,直到有一些数据被读取,或数据完全写入。该线程...
一、Class类1、类是对象,类是java.lang.Class类的实例对象,这个对象称为该类的类类型;2、任何一个类都是Class的实例对象,类的表达式: (1)Class c1 = int.Class; (2) Class c2 = c1.getClass(); (3) Class c3 =null; c3 = Class.forName ("com.imooc.reflect.Foo");3、任何一个类都有一个隐含的静态成员变量;4、创建类类型创建该类的实例对象: c1.newInstance();//需要进行强制类型转换,前提是需要有无参数的构...
首先来了解一下jvm(java虚拟机)中的几个比较重要的内存区域方法区:在java的虚拟机中有一块专门用来存放已经加载的类信息、常量、静态变量以及方法代码的内存区域,叫做方法区。 常量池:常量池是方法区的一部分,主要用来存放常量和类中的符号引用等信息。 堆区:用于存放类的对象实例。 栈区:也叫java虚拟机栈,是由一个一个的栈帧组成的后进先出的栈式结构,栈桢中存放方法运行时产生的局部变量、方法出口等信息。当调用一个...
Java:进阶学习(1)——网络编程基础Socket与ServerSocketSocket又称"套接字",网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket。Socket方法getInetAddress(); 远程服务端的IP地址getPort(); 远程服务端的端口getLocalAddress() 本地客户端的IP地址getLocalPort() 本地客户端的端口getInputStream(); 获得输入流getOutStream(); 获得输出...
前言 ? 关于设计模式的文章就到这里了,学习这门多设计模式,你是不是有这样的疑惑,发现很多设计模式很类似,经常会混淆某些设计模式。这章节我们将对设计模式做一个总结,看看各类设计模式有什么区别。需要注意的是,设计模式在于理解,不在于形式。不要为了套用设计模式而使用设计模式,而是,在业务上遇到问题时,很自然的想到设计模式作为一种解决方案。本章节参考资料书籍《Spring 5核心原理》中的第一篇 Spring 内功心法(S...