随笔分类 - JAVA基础知识
java基础知识
摘要:1、JVM指令集 操作数栈、局部变量表、Java堆、常量池、方法区 数据交换指令 iload,istore,lload,lstore,fload,fstore,dload,dstore,ldc,bipush 操作数栈和局部变量表 getfeild,putfeild Java堆中的对象的字段和操作数栈
阅读全文
摘要:1、压缩指针 2、每个线程的栈的大小Xss 3、线程太多,栈空间飙升 4、堆【eden(8/10) from(1/10) to(1/10) 老年代(2/3)】 minor GC full GC STW (新生代设置大大一些然后不停的创建一些临时的变量,survivor) 先把所有的永久对象驱赶到老年
阅读全文
摘要:1、接口的改变, 接口里可以增加static方法(有方法体)(方法属于接口) 接口里可以增加default方法(有方法体)(方法属于实例) 接口里面的静态方法不会被继承下来,静态变量被继承了下来,default方法会继承下来 如果一个类实现了多个接口,并且这些接口之间没有继承关系,同时存在相同的de
阅读全文
摘要:分布式事务,分布式锁,分布式缓冲,分布式session,分布式队列 1、单体应用springboot 2、集群应用nginx,负载均衡 3、分布式应用,大系统拆分,上层服务注册,服务管理,springcloud,dubbo 4、servicemesh,服务注册,服务管理下移,移到平台层 分布式系统:
阅读全文
摘要:一、异常总体类 java.lang.Objecxt java.lang.Throwable - java.lang.Error 错误,程序中不进行处理 - java.lang.Exception 异常,要求在编写程序时,就要考虑到对这些异常的处理 - 编译时异常 有很多 - 运行时异常 Runtim
阅读全文
摘要:一、JAVA的类加载机制 1、类的双亲委派机制 2、类加载器的种类 启动(Bootstrap)类加载器:引导类加载器是用本地代码实现的类加载器,它负责将<JAVA_HOME>/lib下面的核心类库 或 -Xbootclasspath选项指定的jar包等虚拟机识别的类库加载到内存中。由于引导类加载器涉
阅读全文
摘要:一、可变参数个数的形参 下图中这两个是不能同时存在的 public void sayHello(String ... args) { System.out.println(args.length); System.out.println("sayHello"); System.out.println
阅读全文
摘要:package enjory; public class Test { public static Test t1 = new Test(); public static Test t2 = new Test(); { System.out.println("非静态块"); } static { S
阅读全文
摘要:1、ShiroFilterFactoryBean(shiroFilter的入口) 2、shiro拦截的内容 (1)默认的拦截器(url拦截) 认证相关的拦截器 授权相关的拦截器 (2)方法拦截 @RequiresAuthentication 表示当前 Subject 已经通过 login 进行了身份
阅读全文
摘要:1、java的namespace可以理解为java的在同一级别的不同的类加载器,即classloader 2、不同的namespace类之间的相互调用需要通过反射来完成。
阅读全文
摘要:设计模式需要遵循的原则: 一、单一职责原则 1、接口一定要做到单一原则 2、类的设计尽量做到单一原则 接口的单一原则代码示例: 二、里氏替换原则 1、只要父类出现的地方,子类就可以出现,而且替换为子类不会有任何问题;相反的话,就不行了。 2、子类必须完全实现父类的方法 3、子类可以有自己的个性 4、
阅读全文
摘要:AES实对称加密算法,只要一个秘钥secretKey AES在CBC模式下需要秘钥secretKey和初始向量iv两个参数才能加解密 iv有16个byte,secretKey有128bit、192bit、256bit三种 AES算法漫画详解
阅读全文
摘要:RSA为非对称加密算法。 数字签名的过程:1、对明文数据进行HASH加密,不可逆;2、对加密后的数据再用RSA的私钥进行二次加密。 数字签名的验证过程:1、对明文数据进行HASH加密,不可逆;2、用RSA的公钥对数字签名后的数据进行解密;3、把1的结果和2的结果进行比较是否相等。 RSA加密的过程和
阅读全文
摘要:java NIO的两大特性:非阻塞与直接缓冲 java NIO中所要注意的点: 1、 FileChannel 的read函数,write函数中,如果传入的参数是HeapBuffer类型,则会临时申请一块DirectBuffer,进行数据拷贝,而不是直接进行数据传输,这是出于什么原因? 主要是因为ja
阅读全文
摘要:String的长度不可变,值不可变 1、cancat方法,连接字符串,其实是重新创建一个更长的字符串 2、indexOf 3、lastIndexOf 4、subString 5、trim 6、contains判断字符串中是否包含字串 7、format
阅读全文
摘要:一、JAVA的泛型(泛型就是语法糖) 1、泛型类 ①只能用在非静态成员变量和非静态成员方法上 ②只能代替引用变量 class Student<T>{ T name; public T getName() { return name; } } 2、泛型接口 ①只能用在抽象方法上,不能用在常量上 int
阅读全文
摘要:一、JAVA两大集合阵营 1、Collection (1)Set ①HashSet(重写hashcode和equals方法) LinkedHashSet(有序的)(遍历比较快) ②SortedSet TreeSet(需要添加同一类型的数据,自动排序,需要实现comparable接口)((compar
阅读全文
摘要:子加载器可以访问父加载器所加载的类,但是父加载器无法访问子加载器所加载的类 一、java的类型的加载、连接、初始化过程都是在程序运行期间完成的。 二、类加载的时机: 1、加载 2、连接(验证、准备、解析) 3、初始化(时机java虚拟机严格规定)、 ①new关键字创建对象 读取或设置一个类的静态字段
阅读全文