- 博客(9)
- 收藏
- 关注

原创 JVM-Java内存运行时数据区域介绍
运行时数据区域1、程序计数器程序计数器是一块较小的内存空间,它可以看作是当前线程所执行的字节码的行号指示器。在虚拟机概念模型里(它仅是概念模型,各种虚拟机可能会通过一些高效的方式去实现),字节码解释器工作时就是通过改变这个计数器的值来选取下一条需要执行的字节码指令,分支、循环、跳转、异常处理、线程恢复等基础功能都需要依赖这个计数器来完成。由于Java虚拟机的多线程是通过线程轮流切换并分配处理器执行时间的方式来实现的,在任何一个确定的时刻,一个处理器都只会执行一条线程的指令。因此,为了线程切换.
2020-06-19 17:15:30
573

原创 springboot的启动过程介绍
1、记录一下Springboot启动过程,代码如下:@SpringBootApplicationpublic class StartApplication { public static void main(String[] args) { SpringApplication.run(StartApplication.class , args ); System.out.println("finsh."); }}2、以上的关键是注解 @Sprin
2020-06-11 11:44:50
6050
原创 JVM-对象的创建过程及内存布局
1、对象的创建过程虚拟机遇到一条new指令时,首先将去检查这个指令的参数是否能在常量池中定位到一个类的符号引用,并且检查这个符号引用代表的类是否已被加载、解析和初始化过。如果没有,那必须先执行相应的类加载过程。在类加载检查通过后,接下来虚拟机将为新生对象分配内存。对象所需内存的大小在类加载完成后便可完全确定,为对象分配空间的任务等同于把一块确定大小的内存从Java堆中划分出来。指针碰撞假设Java堆中内存是绝对规整的,所有用过的内存都放在一边,空间的内存放在另外一边,中间放着指针作为分界点的指
2020-06-19 17:31:04
164
原创 java基础-单例的几种写法
单例模式是最常用到的设计模式之一,熟悉设计模式的朋友对单例模式都不会陌生。一般介绍单例模式的书籍都会提到 饿汉式 和 懒汉式 这两种实现方式。简介单例模式是一种常用的软件设计模式,其定义是单例对象的类只能允许一个实例存在。许多时候整个系统只需要拥有一个的全局对象,这样有利于我们协调系统整体的行为。比如在某个服务器程序中,该服务器的配置信息存放在一个文件中,这些配置数据由一个单例对象统一读取,然后服务进程中的其他对象再通过这个单例对象获取这些配置信息。这种方式简化了在复杂环境下的配置管理。..
2020-06-17 16:27:44
548
原创 java基础-接口幂等性
在编程中.一个幂等操作的特点是其任意多次执行所产生的影响均与一次执行的影响相同。幂等函数,或幂等方法,是指可以使用相同参数重复执行,并能获得相同结果的函数。这些函数不会影响系统状态,也不用担心重复执行会对系统造成改变。例如,“getUsername()和setTrue()”函数就是一个幂等函数. 更复杂的操作幂等保证是利用唯一交易号(流水号)实现.简单理解“幂等”就是一个操作,不论执行多少次,产生的效果和返回的结果都是一样的。使用场景1、查询 :查询一次和查询多次,在数据不变的情况下,.
2020-06-17 10:03:54
952
原创 java基础-final-finally-finalize的区别介绍
final于声明属性,方法和类。分别表示属性不可变,方法不可重写,类不可继承final类不能被继承,没有子类,final类中的方法默认是final的 final方法不能被子类的方法覆盖,但可以被继承 final成员变量表示常量,只能被赋值一次,赋值后值不再改变 final不能用于修饰构造方法final修饰类 :它不能再派生出新的子类,不能作为父类被继承。因此,一个类不能同时被声明为absrtact抽象类的和final的类。final修饰属性:如果将变量或者方法声明为final,可以保证它
2020-06-11 18:57:42
2188
原创 java基础-JDK环境配置,windows&linux
Window版本1、右击我的电脑-->属性-->高级-->环境变量2、新建系统变量 JAVA_HOME 和 CLASSPATH ,两个变量的配置如下:JAVA_HOME D:\java\jdk1.8.0_111CLASSPATH .;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;3、选择“系统变量”中变量名为“Path”的环境变量,双击该变量,把JDK安装路径中bin目录的绝对路径,添加到Path变量的..
2020-06-11 17:46:45
2270
原创 java基础-面向对象的三大特征,重载与重写的区别
面向对象的三大特征:封装、继承、多态封装:通常认为封装是把数据和操作数据的方法绑定起来,对数据的访问只能通过已定义的接口。面向对象的本质就是将现实世界描绘成一系列完全自治、封闭的对象。我们在类中编写的方法就是对实现细节的一种封装;我们编写一个类就是对数据和数据操作的封装。可以说,封装就是隐藏一切可隐藏的东西,只向外界提供最简单的编程接口(可以想想普通洗衣机和全自动洗衣机的差别,明显全自动洗衣机封装更好因此操作起来更简单;我们现在使用的智能手机也是封装得足够好的,因为几个按键就搞定了所有的事情)。
2020-06-11 15:10:38
5054
原创 springboot中单例类实现对象的注入
1、最近接手了一个项目,项目用的是SpringBoot,但其中有个类用的是单例,为了不改变单例,且还需要引入Spring管理的Bean对象;2、对于一个单例类按照平时的注解方式添加,启动时会报空指针异常,因为static类对象是创建对象后,内存中还没有注入Bean信息,且无法初始化Bean实例,这里的解决办法是利用@PostConstruct来对单例类中对象的注入@Componentpublic class MesssageHandle implements IMessageHandl.
2020-06-10 17:11:55
4426
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人