
SE
JavaSE基础编程,面向对象、反射、线程、IO流等
曦暮
你想得到你从未拥有的东西时,那你就要做你从未做过的事情。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
windows下查杀进程
端口被占用,需要杀死进程,先查找进程,再结束进程。方式一:根据进程父ID杀死进程查找被占用的端口netstat -ano | findstr "1080"根据进程ID杀死进程taskkill /pid 5588 /f方式二:根据程序名称结束进程在任务管理器找到要结束的进程根据程序名结束进程taskkill /im nginx.exe /f/f 强制结束进程...原创 2020-08-31 11:05:43 · 605 阅读 · 4 评论 -
GC(垃圾回收)详解
基础:1、引用计数法:无法解决循环引用的问题,不被java采纳2、根搜索算法:从根结点扫描,只要这个对象在引用链中,那就是可触及的。3、GC分为年轻代GC和老年代GC4、新生代、老年代、元数据区现代虚拟机中的垃圾搜索算法:标记清除复制算法(新生代)标记压缩(老年代)这三种算法都扩充了根搜索算法。1、标记清除算法**概念:**标记清除算法是现代垃圾回收算法的思想基础。标记清除将垃圾回收分为两个阶段:标记阶段和清除阶段。标记阶段:首先通过根结点,标记所有从根节点开始的可达对.原创 2020-07-22 21:58:00 · 13153 阅读 · 4 评论 -
反射与类加载器
反射:所谓的反射就是指,在java程序运行时,获得某些对象的实际结构与类型的过程。创建对象的方式:用new调用构造方法创建对象用newInstance()按照类型创建对象用Class.formName()根据类名创建对象(类型必须在jar包中,不然创建不了)类加载器:ClassLoader:在JVM启动的过程中,把类模板加载到内存中的工具。就是将一个存在与系统文件中的.class文件,加载到当前JVM的内存中,变成java能识别的Class类型。启动项加载器:由C语言完成的,当JV原创 2020-07-14 22:27:13 · 419 阅读 · 0 评论 -
NIO的过程
同步与异步同步: 同步就是发起一个调用后,被调用者未处理完请求之前,调用不返回。异步: 异步就是发起一个调用后,立刻得到被调用者的回应表示已接收到请求,但是被调用者并没有返回结果,此时我们可以处理其他的请求,被调用者通常依靠事件,回调等机制来通知调用者其返回结果。NIO:NIO主要有三大核心部分:Channel(通道),Buffer(缓冲区), Selector。传统IO基于字节流和字符流进行操作,而NIO基于Channel和Buffer(缓冲区)进行操作,数据总是从通道读取到缓冲区中,或者从原创 2020-07-14 22:24:33 · 290 阅读 · 0 评论 -
TCP三次握手和四次挥手
三次握手:首先,服务器打开一个端口,变成监听状态。客户端发送一个请求SYN = x,客户端此时状态为SYN-sent状态。当服务器的监听端口收到客户端发过来的SYN请求后,向客户端回一个SYN = y,ACK = x + 1,这个ACK表明服务器已经收到了客户端发过来的请求,这个SYN是为了确认客户端是否真的要和自己建立连接,发送完成之后,服务器的状态变为SYN-RCVD(SYN收到状态)。当客户端受到服务器发送来的请求之后,端口变成建立连接状态,然后给服务器回一个ACK = y + 1,表明.原创 2020-07-09 20:05:51 · 223 阅读 · 0 评论 -
多线程并发——闭锁,珊栏,信号量
闭锁(CountDownLatch):多线程并发的时候,设置计数器,当计数器的值没有减到0的时候,调用await()方法的线程会阻塞。countDownLatch():用来计数,每执行一次,计数器的值减去1await():用来阻塞当前线程,当计数器中的值没有减为0的时候,await()方法让当前线程阻塞设置计数器线程:import java.util.concurrent.CountDownLatch;//设置计数器线程public class Thread1 implement.原创 2020-07-09 16:35:32 · 320 阅读 · 0 评论 -
偏向锁、轻量级锁、自旋锁、重量级锁的区别与膨胀
偏向锁:当一个线程访问对象时,它会偏向这个线程,此时对象持有偏向锁。偏向此时访问它的第一个线程,这个线程将对象头中的ThreadID改为自己的ID,之后再次访问这个对象的时候,只需要对比ID,不需要再使用CAS再进行操作。轻量锁:当一个对象此时为偏向锁的时候,另一个线程访问这个对象,因为偏向锁不会主动释放,所以第二个线程可以看到对象此时的偏向锁状态。这时对象已经存在竞争了,此时检查原来持有该对象锁的线程是否依然存活,如果挂了,则可以将对象变为无锁状态,然后重新偏向新的线程,如果原来的线程依然存活,而且还.原创 2020-07-08 15:26:47 · 1086 阅读 · 2 评论 -
java类加载过程和内存模型
JVM(虚拟机):通俗来说,JVM其实就是一个软件,也叫做虚拟机,每一个JVM实例对应一个JAVA进程,当我们执行java **.class其实就是启动了一个JAVA进程,此时一个JVM实例诞生,当该进程关闭时,JVM实例随之消亡。如果一个计算机运行多个java进程,每个java进程都有它自己的jvm实例。jvm执行引擎实例则是对应所属java进程的线程Class文件:字节码文件,是由.java编译而来的二进制文件,class文件是一组以8位字节为基础单位的二进制流。其实这原创 2020-07-05 18:36:20 · 238 阅读 · 0 评论 -
java多线程并发和锁机制
线程和进程:什么是线程,什么是进程?作业(JOB)计算机的一次执行任务,对于单核CPU来说,作业就是线程为了完成某一个任务所占用一段时间的震荡时钟。线程(Thread)是计算机执行计划任务的最小单元(携带了很多的作业(JOB)),线程中的作业基本上都是同步的,如果是异步,那么就会大大降低应用程序的效率。进程(Process)很多线程的集合,进程在操作系统级别是管理线程的工具,也就是说,一个进程里面有很多个线程。线程的名字,我们可以自己给出,但是进程必须是由操作系统,给出一个独有的进程号,这个有.原创 2020-06-26 12:11:54 · 853 阅读 · 0 评论 -
java核心之 — — 内部类
内部类:在Java中的类一共分为以下几种:①普通类:就是大家平时声明的类,定义时用public修饰和不用public修饰的类,用public修饰的在Java中只能有一个并且类名要和文件名相同。不用public修饰的类只能在同包中被调用,因为没有导入的包。②抽象类:具有承载抽象方法能力的类,是对类的抽象。③匿名类:抽象类在实例化对象的时候调用构造方法,会生成匿名类,匿名类要实现抽象类...原创 2019-11-27 20:42:54 · 133 阅读 · 0 评论 -
Java中String的常用方法
在Java中String类有一些特殊,Java中规定String是一个类,但是它可以像四类八种声明变量一样声明一个对象。通常在我们刷力扣的题的时候,运用String会更加方便一些,当然了,前提是你要熟悉他里面包含的常用的方法。下面来介绍一下String中有哪些方法。定位:如果想找到一个字符串的具体哪个字符或具体字符的位置,可以用charAt(int a)、indexof(char s)方法...原创 2019-11-19 20:16:44 · 196 阅读 · 0 评论 -
Java中的封装、继承、组合和多态
Java的特性:Java中有封装、继承、多态三大特性,其中的功能和细节今天我们来讨论下:封装:Java中的类是一个抽象的过程,把相似的对象拥有的共同的特点封装到一起。通常有他们共有的属性和方法封装到一起。当类实例化这些对象时,这些对象就拥有这些类中的属性和方法。程序开发人员呢分为类的创建者和客户端程序员。两者的区别是,类的创建者要把现实世界抽象成Java中的机器代码,当然这部份工作...原创 2019-11-15 19:34:48 · 311 阅读 · 0 评论 -
Java中static和final的作用
java中的两个关键字:static和final是非访问的修饰符,用法大致相似,但也有一些不同,现在我们来讨论一下。static:1、static修饰符代表静态,Java中的变量或方法都只会有两种状态,静态或者动态,静态的变量或方法是定义类的时候,直接写进了方法区里,也就是直接写在了内存中,即使不赋值也会有自己的默认值。而动态的变量和方法顾名思义,是要先在内存中开辟一片空间,然后才开始给内...原创 2019-11-12 11:02:32 · 1133 阅读 · 0 评论 -
Java选择结构例题
逢7必过public class Test{public static void main(String[] args){ int b = 1; //换行作用的变量 for(int i = 1; i <= 100; i++) { //连续输入100个数 if(i % 7 =...原创 2019-10-31 23:18:18 · 600 阅读 · 0 评论 -
Java基础
Java基础类名命名时要符合驼峰命名。字节流:汇编语言写的中间代码。字符码:高级语言写的程序。(判断字节码和字符码文件的标准是看是否能用字文本文档打开,图片、.docx文件是字节码)环境变量:寻找执行程序的文件路径。Java文件一经过编译生成 .class文件,一旦编译拥有下次直接运行。快注释:/* /,文档注释:/* */。;{} :截断符号Sysytem.out.prin...原创 2019-10-31 15:19:08 · 100 阅读 · 0 评论 -
java中基本数据类型
Java中的四类八种整型int在计算机中占用4个字节及32位,最高一位为符号位,当表示正数时,最高位为符号位(符号位为0),最大的正数是 0111 1111 1111 1111 1111 1111 1111 1111 即2^31 -1 = 2147483647,当表示负数时,最高位为符号位(符号位为1),最小的负数是 1000 0000 0000 0000 0000 0000 0000 0...原创 2019-10-31 11:16:29 · 179 阅读 · 0 评论 -
计算机内部工作原理
计算机内部工作原理计算机硬件层计算机的内部主要构成组件是:CPU、内存、硬盘、IO设备构成的。各个部分的功能不同,下面来阐述一下各部分的基本构造和功能。1、CPU中央处理器,CPU的内部中有控制器,运算器这两大类,其中,CPU中有两个管脚用来给cpu进行供电,剩下的管脚阵列一部分就成为了控制器,另一部分成为了运算器。控制器将会读取内存中的程序指令交给运算器,运算器进行计算并将结果返回给控制...原创 2019-10-31 00:09:01 · 1255 阅读 · 0 评论