
Java基础
文章平均质量分 68
dms2017
这个作者很懒,什么都没留下…
展开
-
JVM垃圾回收
1.概念垃圾回收(Garbage Collection,GC)是JAVA特有功能,垃圾收集意味着程序不再需要的对象是"无用信息",这些信息将被丢弃回收。2.垃圾的判断如何判断程序中哪些是垃圾,哪些是有用的对象?2.1 引用计数法当一个对象被引用,给它设置一个初值为0的引用计数器,被引用一次,计数器加1,当引用失效,计数器减1,当计数器为0时该对象可被当做垃圾回收。存在问题:对象循环引用。对象间的相互循环引用导致计数器不为0。2.2 可达性分析算法根对象(gcro...原创 2020-10-05 18:45:28 · 296 阅读 · 0 评论 -
Java对象解密
1. 对象的创建检查类是否加载:虚拟机遇到一条new指令时,先去检查这个指令的参数是否能在常量池中定位到一个类的符号引用,并且检查这个符号引用代表的类是否已经被加载、解析和初始化过,如果没有必须先执行相应的类加载过程;分配内存:类加载检查通过后,接下来虚拟机将为新对象分配内存,对象所需的内存大小在类加载后可以确定,为对象分配空间的任务等同于把一块确定大小的内存从Java堆中划分出来。这个操作有两种方法:指针碰撞(内存规整)、空闲列表(内存不规整)。为对象分配内存时的指针修改并不是线程安全的,解决原创 2020-10-05 16:02:08 · 244 阅读 · 0 评论 -
浅析finally关键字如何一定执行
finally关键字通常和try/catch搭配使用,当程序执行到try中时,finally中的代码一定会执行。finally为什么会一定实现? public static void main(String[] args) { try { System.out.println("try"); } catch (Exception e){ System.out.println("catch");原创 2020-05-11 16:53:30 · 588 阅读 · 0 评论 -
JVM内存结构
1. JVM的内存结构JVM的内存结构主要包括五个部分:程序计数器、虚拟机栈、本地方法栈、堆和方法区,其中程序计数器、虚拟机栈、本地方法栈是线程独有的,而堆和方法区是线程共享的。1.1 程序计数器(Program Counter Register)程序计数器是存放下一条指令所在单元的地址的地方,和汇编中的CS:IP寄存器差不多,都是记录下一条指令的地址。每一个线程有一个独立的程序计数器...原创 2020-05-05 19:03:32 · 698 阅读 · 0 评论 -
分别使用BIO和NIO来实现文件的拷贝并比较两者的效率
1. 本期竞争者有四位,分别是:第一位:FileInputStream+FileOutputStream(BIO);第二位:BufferedFileInputStream+BufferedFileOutputStream(BIO);第三位:ByteBuffer+Channel(NIO);第四位:MappedByteBuffer+Channel(NIO);2. 分别实现文件拷...原创 2020-04-29 14:11:54 · 853 阅读 · 0 评论 -
基于javafx、socket的联机五子棋:实现原理以及遇到的相关问题
1. 实现原理:(1)客户端:①:Client类:表示客户端的主线程,在这个类中定义了客户端的UI界面,所以javafx的按钮事件写在其中;②:Lisener类:客户端最重要的类,它是一个线程,作为内部类可以使用Client类里面的UI,Lisener主要的工作是负责和服务端通信,当收到服务端传来的信息时将信息反馈在UI界面上,也可以将UI界面上的信息发送给服务端,Lisener类在...原创 2020-04-14 12:57:53 · 900 阅读 · 0 评论 -
回调机制:父亲与儿子
问题描述:父亲让儿子写作业,然后父亲去工作,当儿子写完作业后父亲需要检查儿子写的作业。①:请用Java回调机制模拟这个场景;②:当父亲和儿子都是一个线程时,模拟这个场景。问题①分析:分析结束,那么可以给出代码了:Father类:public class Father { private Son son = new Son(this);; publi...原创 2020-02-28 12:14:29 · 292 阅读 · 0 评论 -
并行任务求解:数豆子求PI(3.1415926...)
问题描述:给定一个边长2r的正方形,有这样一个圆:以正方形对角线为圆点,以r为半径。现在在正方形区域内随机撒豆子,落在圆内的豆子数为k个,落在正方形内的豆子数为n个,根据以上给定的信息编程求PI,要求用并发(多线程)提高解题效率。解:初步分析:由已知信息可以得出: (Sc表示圆的面积、Ss表示正方形的面积)所以: 得到: ...原创 2020-02-27 13:32:50 · 950 阅读 · 0 评论 -
maven总结
1. maven的主要功能:(1):依赖管理:jar包的管理;(2):一键构建:自动编译、运行、打包、部署。2. maven的主要命令:(1):mvn clean:删除target目录;(2):mvn compile:编译项目;(3):mvn test:编译项目+编译测试项目;(4):mvn package:编译项目+编译测试项目+打包项目;(5):mvn inst...原创 2020-01-14 15:21:47 · 238 阅读 · 0 评论 -
【思维导图】集合类总结
最近跟着视频学习了集合类,现用思维导图总结如下(使用的是XMind):原创 2019-09-09 20:35:34 · 594 阅读 · 0 评论