JavaSE学习
对java知识的重新梳理
小小卡尔
选择很重要
展开
-
java动态代理机制实例流程对照,翻译翻译什么是动态代理?翻译翻译!!原来这就是动态代理!!
1、什么是动态代理?动态代理就是根据对象在内存中加载的Class类创建运行时类对象,从而调用代理类方法和属性。换句话说就是程序运行时通过反射得到一个对象类,再通过代理方法得到一个反射得到的类的被代理对象,该被代理对象可以调用被代理类方法和属性。2、为什么需要有动态代理?减少代码冗余。避免冗余代码的混乱和分散。3、什么情况下需要动态代理?日志服务,日常程序的维护肯定少不了打日志,程序的每一个结点中的程序运行的每一刻发生的变化都需要日志的输出。对于每个结点打日志这项服务,可以统一通过配置原创 2020-05-14 00:45:16 · 411 阅读 · 0 评论 -
实例对象在堆内存的组成
实例对象有三部分组成:对象头、实例数据、填充数据。在64位机中三者相加的大小 % 8Byte = 0;对象头固定 12 Byte ,若是(实例数据的Byte+12Byte)%8 =0,则没有填充 数据。...原创 2020-04-10 09:50:47 · 295 阅读 · 0 评论 -
thymeleaf参考手册
转自:https://www.jianshu.com/p/4453368eb716点击此处可访问上面链接原创 2020-03-26 18:21:12 · 697 阅读 · 0 评论 -
JavaSE--重新学习_查漏补缺(16)--多线程创建和启动_Thread类的有关方法_线程的生命周期_线程的同步_线程的死锁问题_线程间通信_经典线程同步---生产者/消费者问题
文章目录一、多线程二、多线的创建和启动三、Thread类的有关方法一、多线程形象理解====多线程相当进程的支流,各走各的,假设在进程上跑的代码是主程序,当其中的第三行代码是开启线程的,那么开启线程之后 ,线程运行的代码就和主程序并行(即它们之间不相干了)二、多线的创建和启动Java语言的JVM允许程序运行多个线程,它通过java.lang.Thread类和java.util.concu...原创 2020-03-24 12:22:50 · 150 阅读 · 0 评论 -
JavaSE--重新学习_查漏补缺(15)--动态代理简单实现步骤
文章目录一、动态代理1.1动态代理的步骤即代码一、动态代理动态代理:客户通过代理类来调用其他对象的方法。可以在程序运行时根据需要动态创建被代理类的代理对象。另外介绍–静态代理:代理类和被代理类都是在编译期间确定下来,不利于程序的扩展。同时,每一个代理类只能为一个接口服务,这样程序开发中必然产生过多的代理。最好可以通过一个代理类完成全部的代理功能。1.1动态代理的步骤即代码创建一个...原创 2020-03-23 19:00:03 · 137 阅读 · 0 评论 -
JavaSE--重新学习_查漏补缺(14)--反射机制_Class 类_通过反射调用类的完整结构
文章目录一、反射机制二、Class 类三、通过反射调用类的完整结构一、反射机制反射机制:就是通过一个抽象的类名能够在自己记忆(加载类的内存)中找到相匹配的类的具体信息。前提是:已经在JVM中已经加载过这个类。Java反射机制提供的功能在运行时判断任意一个对象所属的类。在运行时构造任意一个类的对象。在运行时判断任意一个类所具有的成员变量和方法。在运行时调用任意一个对象的...原创 2020-03-23 18:06:34 · 167 阅读 · 0 评论 -
JavaSE--重新学习_查漏补缺(13)--缓冲字节、字符流_转换流_标准输入输出流、打印流和数据流_对象流_随机存取流--RandomAccessFile 类
文章目录一、缓冲字节流二、缓冲字符流三、转换流四、标准输入输出流、打印流和数据流五、对象流5.1序列化5.1.1序列化Serializable接口的serialVersionUID六、随机存取流--RandomAccessFile 类一、缓冲字节流缓冲流是基于内存的io,而文件流是基于硬盘的io,所有缓存流比较快,大概比文件流快75000多倍。缓冲的字节输入流使用BufferInputS...原创 2020-03-23 12:09:25 · 211 阅读 · 0 评论 -
JavaSE--重新学习_查漏补缺(12)--java中IO的主要_File类_流的分类_File的字节流_File的字符类
文章目录一、IO的主要内容二、File类三、流的分类四、文件字节流五、文件字符流六、注意一、IO的主要内容io(input、output)二、File类只能操作文件本身,但不能操作文件内容。以上所示方法实现如下代码,以上方法的作用在代码注解中。import java.io.File;import java.io.FileReader;import java.io.I...原创 2020-03-23 02:53:28 · 133 阅读 · 0 评论 -
JavaSE--重新学习_查漏补缺(11)--枚举类_注解Annotation
文章目录枚举类枚举类枚举类的出现是在某些情况下,一个类的对象是有限而且固定的。例如季节类,只能有 4 个对象。枚举类的实现就是单例模式模式中创建一个或多个实例。JDK 1.5 新增的 enum 关键字用于定义枚举类枚举类和普通类的区别:使用 enum 定义的枚举类默认继承了 java.lang.Enum 类枚举类的构造器只能使用 private 访问控制符枚举类的所有实例必须...原创 2020-03-22 20:08:53 · 162 阅读 · 0 评论 -
JavaSE--重新学习_查漏补缺(10)--泛型
文章目录一、为什么有泛型二、泛型有效阶段三、泛型的使用四、通配符一、为什么有泛型泛型,JDK1.5新加入的,解决数据类型的安全性问题,其主要原理是在类声明时通过一个标识表示类中某个属性的类型或者是某个方法的返回值及参数类型。这样在类声明或实例化时只要指定好需要的具体的类型即可。Java泛型可以保证如果程序在编译时没有发出警告,运行时就不会产生ClassCastException异常。同时,...原创 2020-03-22 16:52:43 · 107 阅读 · 0 评论 -
JavaSE--重新学习_查漏补缺(9)--Java集合概述_Set、List、Map集合_泛型使用_Collections工具类
文章目录一、Java集合概述二、Set集合三、List集合四、Map集合五、集合使用泛型限定类型Collections工具类一、Java集合概述javaSetListMap其中只有List是有序的,其他的Set、Map默认是无序的,不过它们的子类TreeSet和TreeMap是有序的。二、Set集合(1)HashSet集合(2)TreeSet*(3) 自然排序自动...原创 2020-03-22 12:08:47 · 207 阅读 · 0 评论 -
JavaSE--重新学习_查漏补缺(8)--java异常处理机制_异常抓抛_异常输出_自建异常种类
文章目录一、java中异常介绍二、异常种类三、异常处理的目的四、异常处理机制五、捕获异常一个try'对应多个catch时六、异常的相关信息七、人工建立异常八、异常处理注意点一、java中异常介绍异常有两种Error和Exception,一般我们抛出或是捕获的异常只能是Exception,Error一般是JVM内部问题,不能捕获。二、异常种类全部异常接口或类如下图算术运算错误数组...原创 2020-03-22 11:21:25 · 719 阅读 · 0 评论 -
JavaSE--重新学习_查漏补缺(7)--抽象类和接口的应用场景_面对对象内容总结
文章目录一、抽象类和接口的应用场景二、面对对象内容总结一、抽象类和接口的应用场景抽象类—>事物抽象接口 ----->动作抽象二、面对对象内容总结...原创 2020-03-22 10:47:25 · 81 阅读 · 0 评论 -
JavaSE--重新学习_查漏补缺(6)--设计模式--单例模式_代码块_匿名内部类_final static 定义的变量是全局常量
文章目录一、设计模式--单例模式二、代码块三、匿名内部类四、final static 定义的变量时全局常量一、设计模式–单例模式有两种方式实现单例设计模式—饿汉式和懒汉式(没有痴汉式哦!!!)两种方式是实现的思想都是封装隐藏。共同点两者都将构造方法私有化,这样只能再本类中进行实例化,外部类将无法通过两者对应类的构造方法调用,进行外部实例化。饿汉式是将本类的对象使用static修饰且直接...原创 2020-03-22 03:28:51 · 819 阅读 · 0 评论 -
JavaSE--重新学习_查漏补缺(5)--Object类中的主要方法_instanceof操作符_对象的类型转换_==操作符与equals方法的区别_直接输出对象输出的东西_再谈static关键字
文章目录一、Object类中的主要方法二、instanceof操作符三、对象的类型转换四、==操作符与equals方法的区别五、直接输出对象输出的东西六、再谈static关键字一、Object类中的主要方法Object作为所有类的父类,它的方法时所有对象都有的方法。二、instanceof操作符作用:比较对象是不是同一个对象三、对象的类型转换对象类型转换和基本数据类型转换的思想是一...原创 2020-03-22 02:53:17 · 696 阅读 · 0 评论 -
JavaSE--重新学习_查漏补缺(4)--普通类、子类在JVM内存中的实例化过程_对象编译时和运行时类型_Sting对象不同的创建方式_多态性本质_子类继承父类注意到
文章目录一、简单类对象的实例化过程(JVM内存解析)二、子类对象的实例化过程(JVM内存解析)三、对象实例化在编译时类型和运行时类型问题一、简单类对象的实例化过程(JVM内存解析)1、普通无继承类的对象实例化过程(1)在方法区加载需要实例化对象的类。(2)在栈中申请空间,声明接收对象的变量,分配栈内存地址,如下图中的p。(3)在堆内存中申请开辟空间,分配堆内存地址。...原创 2020-03-22 01:31:17 · 725 阅读 · 0 评论 -
JavaSE--重新学习_查漏补缺(3)--继承的细节_this和super关键字
文章目录一、 继承细节二、子类使用父类的成员方法、变量的限制三、super关键字注意点四、子类调用父类的构造器需注意点五、this和spuer关键字一、 继承细节1、只能单继承类(接口和内部类可以解决单继承问题)2、可以多继承接口3、对父类方法的重写需要的修饰符是同级或以上的范围(如 父类public 子类也必须public了)二、子类使用父类的成员方法、变量的限制1、如果子类和...原创 2020-03-21 21:33:48 · 709 阅读 · 0 评论 -
JavaSE--重新学习_查漏补缺(2)--Java方法参数传递_对象引用问题_底层Jvm内存模式解析
方法的参数传递1、如果方法的参数是基本数据类型,那么实参向方法传参数时,直接传递值,将实参的值复制给形参,即在jvm栈中新建一个参数内存,再复制一份实参的内存数据给形参的内存。2、如果方法的实参时对象,那么实参向方法传参数时,也是直接传递值,但此时该值是实参所指对象的jvm内存堆地址(引用对象在堆内存中的地址),也就是实参和形参这时指向同一个对象,对象也只是创建一次。原因:因为基本数据类...原创 2020-03-20 00:50:58 · 714 阅读 · 0 评论 -
JavaSE--重新学习_查漏补缺(1)--JavaSE的知识图解_ 8种基本数据类型_向方法传参数细节
一、JavaSE的知识图解二、 8种基本数据类型数据类型定义细节long l =3l //long类型赋值需要加lfloat f = 1.2f // float类型赋值虚假fdouble d =1.2 //double不用加基本数据类型转换三、向方法传参数细节若需要向方法中传入多个参数,可以自定义数据来传递参数如:String[] arg,也可以使用java特有的"…...原创 2020-03-21 17:46:05 · 704 阅读 · 0 评论 -
HashMap理解
JDK1.7的时候使用的是数组+ 单链表的数据结构。但是在JDK1.8及之后时,使用的是数组+链表+红黑树的数据结构(当链表的深度达到8的时候,也就是默认阈值,就会自动扩容把链表转成红黑树的数据结构来把时间复杂度从O(n)变成O(logN)提高了效率)1当链表长度为8 即等于阈值的时候 会将链表转化为红黑树当链表长度为6的时候,会将红黑树转化为链表原因:因为链表过小时,使用红黑树性能还...原创 2020-03-15 12:49:47 · 1204 阅读 · 0 评论 -
Java线程池的拒绝策略
转发原文链接转载 2020-03-13 23:46:11 · 678 阅读 · 0 评论