java
文章平均质量分 90
lytangus
这个作者很懒,什么都没留下…
展开
-
Java“白皮书"的关键术语
简单性我们通常说一个事物简单都是比较而言的,那么Java的简单性主要体现在如下两个方面: 1. 相对于c++,它剔除了头文件,指针运算等许多难以理解易混淆的特性。 2. 支持开发能够在小型机器上独立运行的软件。面向对象这应该是Java最大的特性了,面向对象与面向过程相对。在一切皆对象的基础上,将重点放在数据和对象的接口上。如若把对象看作人,过程...原创 2018-08-16 15:20:22 · 140 阅读 · 0 评论 -
字节码执行细节
Java虚拟机执行Java字节码的时候,每一个方法都对应一个虚拟机栈中的栈帧,方法从调用开始执行到执行完成返回相应值的过程就对应着一个栈帧从入栈到出栈的过程。那么一个方法的栈帧需要多大的内存呢?早在方法表的code属性中做了相关规定:比如max_locals指明局部变量表的最大容量, max_stacks代表操作数栈的最大深度等。对于一个栈帧,大概包括局部变量表、操作数栈、动态链接和方法返回地址...原创 2018-11-22 17:12:39 · 263 阅读 · 0 评论 -
类加载机制
首先,这里所说的类不是Java类,而是编译之后的class字节码文件。一个类从被加载到虚拟机内存中开始,到卸载出内存为止,它的声明周期为:那么什么时候进行第一阶段(加载)呢?Java虚拟机并没有规定,但必须在初始化阶段之前。对初始化来说,虚拟机规定了5类情况必须对类进行初始化,分别为:1. 遇到new、getstatic、putstatic或invokestatic这4条字节码指令时,如果...原创 2018-11-21 19:43:51 · 120 阅读 · 1 评论 -
垃圾收集器与内存分配策略
说起垃圾回收,我们大概关注三个问题: 哪写内存需要回收 什么时候回收 如何回收下面我们来一一解释:回收的对象是已经不需要的,也就是没有引用指向的对象,那么如何确定对象是否已死,有如下几种算法:1. 引用计数法给对象添加一个引用计数器, 有引用就加一,失效就减一。但是它没办法解决对象之间循环引用的问题。public class ReferenceCountingGC { p...原创 2019-02-27 15:29:26 · 91 阅读 · 0 评论 -
Java内存区域
HotSpot虚拟机在Java堆中对象分配、布局和访问的过程对象的创建在虚拟机中,通过new指令来表明要创建对象,具体过程为:首先检查这个指令的参数是否能在常量池中定位到一个类的符号引用。如果有,则检查这个符号代表的类是否已经被加载、解析和初始化过,否则,先执行相应的类加载过程。类加载检查通过后,为新生对象分配内存。分配方式有两种:指针碰撞:堆中内存是规整的空闲...原创 2019-02-27 15:29:38 · 121 阅读 · 0 评论 -
并发相关要点记录
进程和线程的本质区别在于每个进程拥有自己的一整套变量,而线程共享数据。创建线程1. 实现Runnable接口(函数式接口),并将业务代码放到run方法中 Runnable r = () ->{ task code};2. 由Runnable创建一个Thread对象 Threa t = new Thread(r);3. 启动线程 t.start();中断线程run...原创 2019-02-27 15:30:16 · 110 阅读 · 0 评论 -
java集合要点记录
Collection接口两个基本方法:add()和iterator()1. add(): 如果添加操作使得集合改变就返回true2. 返回一个实现了Iterator接口的对象。迭代器Iterator接口共有4个方法public interface Iterator<E>{ E next(); boolean hasNext(); void remove(); ...原创 2019-02-27 15:30:29 · 128 阅读 · 0 评论 -
泛型
实际上,在泛型类出现之前Java中就已经有ArrayList类,那么当时如何进行泛型程序设计呢?答案是:继承,ArrayList类只维护一个Object引用的数组。如下:public class ArrayList{ private object[] elementData; ... public Object get(int i) {...} public void add(Obj...原创 2018-12-06 14:36:58 · 108 阅读 · 0 评论 -
核心技术-继承
super并不是一个对象的引用,不能讲super赋给另一个对象变量,它只是一个指示编译器调用超类方法的特殊关键字。this: 1. 引用隐式参数 2. 调用该类其他的构造器。super: 1.调用超类的方法 2. 调用超类的构造器。多态继承关系--“is-a”:可以表述为置换法则 表明程序中出现超类对象的任何地方都可以用子类对象置换。 如子类对象赋给超类变量: Emplo...原创 2019-02-27 15:30:47 · 116 阅读 · 0 评论 -
Lambda表达式
Lambda表达式lambda表达式是一个可传递的代码块,可以在以后执行一次或多次。需求:如果想按长度对字符串进行排序,可以向sort方法传入一个Comparator对象: class lengthComparator implements Comparator<String> { public int compare(String first, String seco...原创 2019-02-27 15:31:02 · 186 阅读 · 0 评论 -
springboot爬坑之路
Neither BindingResult nor plain target object for bean name ‘taco’这个错误原因是传到页面的参数没有taco,通过如下可解决:@ModelAttribute(name="taco")public Taco taco(){ return new Taco();}...原创 2019-01-08 16:40:35 · 155 阅读 · 0 评论