java基础
文章平均质量分 71
完猛
我们用代码创造世界,不能用代码支配世界
展开
-
javaIO模型概念深入挖掘
javaIO模型BIO模型(Bkicj-lo 同步阻塞IO) 一个线程处理一个请求,其他线程阻塞在哪 io流操作中accept()和read()方法会阻塞在哪 同步并阻塞,服务器实现模式为一个连接一个线程,即客户端有连接请求的服务器端就需要启动一个线程进行处理, 如果这个连接不做任何事情造成不必要的线程开销。 需要开启多个线程,线程的切换和等待都带来非常大的开销 适用场景:解决客户端数量比较小,并且固定的架构,这种方式对服务器资源要求比较高...原创 2021-03-29 10:40:28 · 229 阅读 · 2 评论 -
jvm中java类加载机制,双亲委派
java指令到底干了些什么?我们些的java代码是如何被加载到jvm内存中执行的?实现自定义的类加载器。实现自己的热加载。实现同类多个版本共存。类加载具有五个阶段:加载、验证、准备、解析、初始化加载:将java中的class字节文件加载进入堆内存中。验证:验证该类是否正确,class文件不能对虚拟机造成危害,验证文件格式,元数据,字节码,符号引用验证。准备:java类中又许多其他变量,变量分为两种,一种是类变量,一种是实例变量,类变量就是具有static定义的变量。这时候需要根据定义类型原创 2021-03-26 14:47:37 · 209 阅读 · 0 评论 -
并发编程笔记
单核CPU下,多线程不能实际提高程序运行效率,值是为了能够在不同的任务之间切换。多核CPU可以并行跑多个线程,可以提高程序运行效率。java中创建线程的方式Thread类的方式Thread t=new Thread(){ public void run(){ //要执行的任务 }};t.start();Runnable 的方式Runnable r= () -> System.out.println("进入线程Runnable");Thread是吧线程和任务合并在一起...原创 2021-03-23 14:02:51 · 105 阅读 · 0 评论 -
Spring 笔记
Spring 创建Bean创建的步骤Spring中bean的生命周期:class:java中的class类。实例化:通过class的构造方法,去反射无参构造方法实例化,如果多个构造方法,推断构造方法。可以在构造方法上加上@Autowired注解来告诉Spring用这个。如果只有一个有参数构造方法。那么他会通过参数的类型,去单例池中找。如果找到多个再根据名字去查找其中的一个。自动入参。如果没找到对应的参数入参会报错。如果存在多个有参的构造方法,也会报错没办吧实例化对象。实例化过原创 2021-03-22 09:45:10 · 95 阅读 · 0 评论 -
synchronized锁的作用,原理(笔记)
反编译命令: javap -p -v ***.classsynchronized可以保证原子性保证可见性保证有序性可重入特性synchronized不可中断特性当线程拿到锁之后 还没有释放该锁过程中,是不可以被主线程打断的,因为钥匙还没有还回去当现在还在等待钥匙的时候,也是无法被主线程打断的。同步代码块:指令monitorenter当指令执行到这里的时候,程序会尝试去获取monitor,有可能获取到,有可能获取不到阻塞在这里。monitor是一把锁,C++对象monito..原创 2021-03-09 10:34:51 · 572 阅读 · 0 评论 -
java设计模式(目的和原则)
设计模式的目的:让程序耦合性,内聚性,可维护性,可扩展性,重用性以及灵活性更好。1、代码重用性(即:相同功能的代码,不用多次编写)2、可读性(即:编程规范性,便于其他程序员阅读和理解)3、可扩展性(即:当需要增加新的功能时,非常的方便,称为可维护性)4、可靠性(即:当我们增加新的功能后,对原来的功能没有影响)5、使程序呈现高内聚,低耦合的特性设计模式七大原则:1、单一职责原则 降低类的复杂度,一个类只负责一项职责 提高类的可读性,可维护性 降低变更引起的...原创 2021-02-01 15:06:08 · 530 阅读 · 0 评论 -
JVM笔记(垃圾回收器)
垃圾回收器算法:常见的垃圾回收器stop-the-world (暂停整个程序,简称STW)1、Serial (单线程工作的年轻代) 作用于年轻代 串行回收在程序运行过程中,内存满了以后,触发GC, 先STW以后然后单线程一个个标记清除,程序继续运行2、ps (多线程工作的年轻代) 作用于年轻代 并行回收 不可以配合CMS在程序运行过程中,内存满了以后,触发GC, 先STW以后然后多线程一个个标记清除,程序继续运行3、ParNew (多线程工作的新...原创 2021-01-13 17:45:43 · 139 阅读 · 0 评论 -
hashMap的使用和分析
1、背景面试当中我们肯定会被问到集合,那集合当中hashMap被问到的概率是非常高的。这也是我们开发当中经常用到的集合类型,下面我就简单的对这个集合做了总结。主要是对这个集合的使用进行操作。然后对他具体是实现进行了简单的总结2、hashMap的使用就直接上代码吧,如下: /** * 1、输出是无序的 * 2、可以为key值NULL,value也可以为NUll * 3、可以存对象但是遍历的时候需要判断类型,否则会异常 */ public原创 2020-06-04 19:34:01 · 231 阅读 · 0 评论 -
HashSet的特性测试和使用
1、背景下面我开始整理一系列集合篇,因为以前都是在整理一些框架啊,中间件什么的,其实对于基础我的功底还不够扎实,所以需要从新认真复习和整理一下,后面会将set,map,list这些集合都一律整理出来,仅限于我自己知道的整理。直接代码HashSetpackage com.wanmeng.ststpps.test;import java.util.HashSet;import java.util.Iterator;import java.util.Set;/** * 集合调试类 .原创 2020-06-02 22:51:08 · 247 阅读 · 0 评论