java难点
大魔王King
这个作者很懒,什么都没留下…
展开
-
java中的反射(基本知识点)
一个类或者对象通过反射可以获得自身的对象,该对象是一个java.lang.Class 的对象(就像一个镜像文件)。 一个对象或者类获得自身的Class对象的过程称为反射。有三种方法可以获得自身的Class对象引用(对每一个被装载的类型(类或接口),虚拟机都会为它创建一个java.lang.Class的实例): 1) Class c = Class.forName(“com.briup.c...原创 2018-06-21 09:54:42 · 637 阅读 · 0 评论 -
Java线程相关问题
1、多线程有什么用?(1)发挥多核CPU的优势现在的笔记本、台式机乃至商用的应用服务器至少也都是双核的,4核、8核甚至16核的也都不少见,如果是单线程的程序,那么在双核CPU上就浪费了50%,在4核CPU上就浪费了75%。单核CPU上所谓的"多线程"那是假的多线程,同一时间处理器只会处理一段逻辑,只不过线程之间切换得比较快,看着像多个线程"同时"运行罢了。多核CPU上的多线程才是真正的多线程,它能...原创 2018-06-25 15:45:59 · 144 阅读 · 0 评论 -
Java重要的IO流类
1.简述流以及字节流和字符流在Java中,把一组有序的数据序列称为流。根据操作的方向,可以把流分为输入流和输出流两种。如果数据流中最小的数据单元是字节,那么称这种流为字节流;如果数据流中最小的数据单元是字符,那么称这种流为字符流。在I/O类库中,java.io.InputStream和java.io.OutputStream分别表示字节输入流和字节输出流,java.io.Reader和java.i...原创 2018-06-26 11:39:25 · 1208 阅读 · 0 评论 -
深入理解双亲委托机制
JVM设计者把类加载阶段中的“通过'类全名'来获取定义此类的二进制字节流”这个动作放到Java虚拟机外部去实现,以便让应用程序自己决定如何去获取所需要的类。实现这个动作的代码模块称为“类加载器”。1.类与类加载器对于任何一个类,都需要由加载它的类加载器和这个类来确立其在JVM中的唯一性。也就是说,两个类来源于同一个Class文件,并且被同一个类加载器加载,这两个类才相等。2.双亲委派模...原创 2018-07-31 16:59:47 · 12260 阅读 · 0 评论 -
Java的类加载过程
我们从微观的角度深入了解一下类加载的过程,这样我们才能从宏观角度理解java程序。使用java编译器可以把java代码编译为存储字节码的Class文件,使用其他语言的编译器一样可以把程序代码翻译成Class文件,java虚拟机不关心Class的来源是何种语言。 在Class文件中描述的各种信息,最终都需要加载到虚拟机中才能运行和使用。那么虚拟机是如何加载这些Class文件的呢?J...原创 2018-08-01 18:51:46 · 171 阅读 · 1 评论 -
Java垃圾回收算法
GC垃圾收集器,需要做的三件事情:1.哪些内存需要回收?2.什么时候回收?3.如何回收?垃圾回收算法都是基于这三点,现在的垃圾回收基本都采用分代收集算法,所有java堆可以细分为:新生代和老年代。下面对各种算法做简单介绍1.引用计数法(Reference Counting Collector) 给对象添加一个引用计数器,当有地方引用它时,计数器加1,;当引用失效时(对象...原创 2018-08-02 11:26:44 · 214 阅读 · 0 评论 -
Java中的volatile
volatile 变量具有 synchronized 的可见性特性,但是不具备原子特性。这就是说线程能够自动发现 volatile 变量的最新值。volatile 变量可用于提供线程安全,但是只能应用于非常有限的一组用例:多个变量之间或者某个变量的当前值与修改后值之间没有约束。因此,单独使用 volatile 还不足以实现计数器、互斥锁或任何具有与多个变量相关的不变式(Invari...原创 2018-08-03 10:55:08 · 178 阅读 · 0 评论 -
Java中XML的解析方式
XML是一种通用的数据交换格式,它的平台无关性、语言无关性、系统无关性、给数据集成与交互带来了极大的方便。XML在不同的语言环境中解析方式都是一样的,只不过实现的语法不同而已。(不仅仅适用于java) XML的解析方式分为四种:1、DOM解析;2、SAX解析;3、JDOM解析;4、DOM4J解析。其中前两种属于基础方法,是官方提供的平台无关的解析方式;后两种属于扩展方法,它们是在基础的...原创 2018-09-04 18:39:01 · 164 阅读 · 0 评论 -
Java的线程池(一看就懂)
java线程池最大作用就是管理线程,控制线程数,实现高并发首先最基本的创建线程池方式ThreadPoolExecutor pool = new ThreadPoolExecutor(1,2,60, TimeUnit.SECONDS,new LinkedBlockingQueue<Runnable>());参数1:核心线程数参数2:最大线程数,当任务队列满的时候,是否创建...原创 2019-03-27 16:25:40 · 210 阅读 · 0 评论