![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java
文章平均质量分 95
王逍遥这是我们的狗
I wish I knew how to quit you.
展开
-
Java异常
一、异常类结构异常类结构图:(图片地址:https://img-blog.csdn.net/20180920165502957?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L21pY2hhZWxnbw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)说明:1.Thro...原创 2019-10-17 13:33:27 · 133 阅读 · 0 评论 -
单例模式和工厂模式
单例模式整个类只能有一个已经预定好的实例,该类保证只有一个对象被创建,这里的一个对象指:不管创建多少个对象,都是相同的对象。Java反射能够使用private类型的构造器构建实例,遇上反射什么单例模式都不单例了。单例模式的特点:构造方法为私有 持有自己类型的属性 对外提供获取单例的静态方法饿汉式在程序运行时直接创建单例,线程安全,全局只有一个初始就被实例化的单例,但是因为...原创 2019-10-17 11:54:54 · 211 阅读 · 0 评论 -
Java反射和动态代理
1.Class类Class类是一个用于描述类的类,其实例代表了一个运行中程序的类或对象,可以通过Class类实例来获取一个类的相关信息,比如Field,Method,Constructor等信息。Class没有公有构造方法,一个Class对象是被JVM自动实例化的。获取一个Class实例的三种方式:类名.class 类实例.getClass() Class.forName("类...原创 2019-10-13 15:32:24 · 174 阅读 · 0 评论 -
多线程(四):ThreadLocal
一、简述ThreadLocal可以看作是一种数据结构,底层用map来实现。ThreadLocal为每一个线程创建一个线程本地(thread-local)的变量,每个线程都有其独有的本地变量,相互之间的操作互不影响。在多个线程并发访问同一个变量时,为了保证数据安全,synchronized或是Lock对对象上锁,当线程持有锁,其他线程不得访问,只有当持有锁的线程执行完毕,其他线程才能够获...原创 2019-10-05 14:23:54 · 349 阅读 · 0 评论 -
多线程(三):synchronized和Lock
Synchronized可重入锁:当一个线程得到一个对象的锁后,其他线程不可再获得此锁,但是此线程可以再次请求获得其对象的锁,这样就称之为可重入锁。可重入锁保证了一个线程获得锁之后可以再次请求锁,能够在一定程度上减少程序死锁的几率。synchronized和ReentrantLock都是可重入锁。synchronized的解锁过程是由JVM自动控制,Lock需要手动解锁。通过syn...原创 2019-10-04 19:30:06 · 173 阅读 · 0 评论 -
多线程(五):线程池
一、网摘程序的运行,其本质上,是对系统资源(CPU、内存、磁盘、网络等等)的使用。如何高效的使用这些资源是编程优化演进的一个方向。线程池就是一种对提高系统资源利用的优化手段。在多个线程并发处理任务的情况下,如果每个线程只是执行一个时间很短的任务就结束,那么线程的创建和销毁会占用相当一部分系统资源。线程池就是在池中创建多个活跃的线程,当任务到来时,就分配若干线程去执行任务,任务执行完之后,线...原创 2019-10-08 13:58:05 · 221 阅读 · 0 评论 -
多线程(二):锁和线程通信
锁synchronized,可以加在方法或代码块上,加在代码块上可以只对需要同步的内容加锁死锁:死锁是多个线程同时陷入等待的情况,举例A线程需要B线程的数据,B线程需要A线程的数据,二者都在等待对方的数据。解决死锁的最好办法是预防死锁出现。同步同步是为了保持数据的一致性,可以通过为数据加锁来实现同步。所以在设计代码时,synchronized关键字的位置,是加在需要同步的数据上。...原创 2019-10-03 14:09:04 · 185 阅读 · 0 评论 -
多线程(一)
一、概述进程和线程: 线程可以看作是对进程的再划分,比如eclipse是一个进程,而eclipse提供的各种功能就是一个个小小的线程 进程应当是独立的应用程序,而线程,同类的进程能够共享同一块内存空间,这样在各个线程之间切换时,负担比进程之间的切换小 进程为独立运行,而线程之间可能会相互影响,考虑到死锁和线程之间的通信,多线程就是多个线程同时运行线程和CPU:...原创 2019-10-03 14:15:15 · 126 阅读 · 0 评论 -
多线程
一、概述多线程相较于单线程任务,CPU调度更加灵活,比如在进行耗时的I/O任务时,会向磁盘读取内容,耗时较长,在这段时间内,如果是单线程任务,CPU就会处于空闲状态,而多线程CPU就可以在等待磁盘读写的时间内进行其他任务了。CPU分时调度:所有线程轮流使用 CPU 的使用权,平均分配每个线程占用 CPU 的时间。CPU抢占式调度:优先让优先级高的线程使用 CPU,如果线程的优先级相同,...原创 2018-12-12 19:04:04 · 144 阅读 · 0 评论 -
面试
一、基础1.接口和抽象类有什么区别?接口(interface)代表一种能力,接口中的方法都用public来修饰,没有构造方法,不可实例化,接口中只有常量,且是public static final(共有静态常量)接口的继承类必须实现接口中的所有方法。一个接口可以继承多个接口,但不允许多重继承。接口直接的继承使用extends,普通类继承接口implements。抽象类(abstract...原创 2019-09-18 12:51:15 · 175 阅读 · 0 评论 -
String,StringBuffer,StringBuilder
String:查看String的源码: /** The value is used for character storage. */ private final char value[];/** * Initializes a newly created {@code String} object so that it represents * an e...原创 2019-09-19 12:30:30 · 154 阅读 · 0 评论 -
IO
一、概述IO根据要操作对象的类型不同(操作的媒介不同),可以分为多种。Writer/Reader,InputStream/OutputStream为抽象类,定义了IO所通用的方法,包括write(),flush(),close()等。Writer/Reader对应为字符流,可以用来操作中文字符,InputStream/OutputStream为字节流,可以传输图片等。IO类结构图:...原创 2019-09-29 14:36:52 · 230 阅读 · 0 评论 -
集合
集合类结构图:图片来源于网络,侵删。CollectionList和Set接口的父接口,继承了Iterator接口,所以List,Set均可以使用迭代器输出。定义了add(),remove()这些方法,不同类型的集合,对collection中方法的实现有所不同。que:Collection和Collections的区别?Collection是集合的root interface...原创 2019-09-29 15:59:29 · 169 阅读 · 0 评论 -
equals(),==,hashCode()
本来是要梳理在hash集合中,是如何利用equals()和hashCode()判定元素是否重复,但是要说equals()就要谈==,索性一起总结。参考博文:https://www.cnblogs.com/skywang12345/p/3324958.html强烈推荐一看。equals()和==当是普通数据类型(int,double,char等),==是直接比较值,如果是引用类型数据...原创 2019-09-29 22:24:40 · 162 阅读 · 0 评论 -
java反射实例化对象
-Class类Java中手动创建的每一个类,在编译后JVM都会为其创建一个Class类对象,在这个Class类对象中保存了所建类的信息。可通过Class类提供的方法为一个类实例化对象,区别与new关键字创建对象,前者是在类已经编译好的情况下,通过指定类名来创建实例化对象,后者是在编译之后之间创建实例化对象。也可通过Class类在运行时获得某个类对象的信息。下面是获取Class类对象的三种方法。pa...原创 2018-06-08 13:43:41 · 14029 阅读 · 2 评论