2021Java班(西狂老师)
文章平均质量分 84
10年以上java,python教学经验
广东工业大学硕士
现任Java教学主管
翁老师的教学团队
这个作者很懒,什么都没留下…
展开
-
JVM的4种垃圾回收算法、垃圾回收机制与总结
JVM的4种垃圾回收算法、垃圾回收机制与总结一、垃圾回收算法1.标记清除标记-清除算法将垃圾回收分为两个阶段:标记阶段和清除阶段。在标记阶段首先通过根节点(GC Roots),标记所有从根节点开始的对象,未被标记的对象就是未被引用的垃圾对象。然后,在清除阶段,清除所有未被标记的对象。适用场合:存活对象较多的情况下比较高效适用于年老代(即旧生代)缺点:容易产生内存碎片,再来一个比较大的对象时(典型情况:该对象的大小大于空闲表中的每一块儿大小但是小于其中两块儿的和),会提前触发垃圾原创 2021-07-14 16:36:41 · 7903 阅读 · 0 评论 -
深入理解Java类加载器(ClassLoader)
深入理解Java类加载器(ClassLoader)类加载的机制的层次结构每个编写的".java"拓展名类文件都存储着需要执行的程序逻辑,这些".java"文件经过Java编译器编译成拓展名为".class"的文件,".class"文件中保存着Java代码经转换后的虚拟机指令,当需要使用某个类时,虚拟机将会加载它的".class"文件,并创建对应的class对象,将class文件加载到虚拟机的内存,这个过程称为类加载,这里我们需要了解一下类加载的过程,如下:加载:类加载过程的一个阶段:通过一个类的完全限原创 2021-07-14 16:29:13 · 253 阅读 · 0 评论 -
深入理解Java并发之synchronized实现原理
深入理解Java并发之synchronized实现原理本篇主要是对Java并发中synchronized关键字进行较为深入的探索,这些知识点结合博主对synchronized的个人理解以及相关的书籍的讲解(在结尾参考资料),如有误处,欢迎留言。synchronized的三种应用方式synchronized作用于实例方法synchronized作用于静态方法synchronized同步代码块synchronized底层语义原理理解Java对象头与Monitorsynchronized代码块底层原创 2021-07-14 16:23:44 · 103 阅读 · 0 评论 -
深入理解7种JVM垃圾收集器特点,优劣势、及使用场景
7种JVM垃圾收集器特点,优劣势、及使用场景今天继续JVM的垃圾回收器详解,如果说垃圾收集算法是JVM内存回收的方法论,那么垃圾收集器就是内存回收的具体实现。一、常见的垃圾收集器有3类1.新生代的收集器包括SerialPraNewParallel Scavenge2.老年代的收集器包括Serial OldParallel OldCMS3.回收整个Java堆(新生代和老年代)G1收集器今天我们详细谈谈以上7种垃圾收集器的优劣势和使用场景。新生代垃圾收集器1.Ser原创 2021-07-14 16:22:57 · 389 阅读 · 0 评论 -
MySQL 基本语法
MySQL 基本语法一、Mysql基础SQL的分类:1、DDL—数据定义语言(Data Define Language):create(创建),alter(修改),drop(删除),TRUNCATE(截断),RENAME(重命名);2、DML—数据操纵语言(Data Manipulation Language):select(查询),delete(删除),update(更新),insert(新增);3、DCL—数据控制语言(Data Control Language):grant(添加权限),re原创 2021-07-14 16:22:21 · 173 阅读 · 0 评论 -
JDK各个版本的新特性
JDK各个版本的新特性JDK1.5新特性:1.自动装箱与拆箱:自动装箱的过程:每当需要一种类型的对象时,这种基本类型就自动地封装到与它相同类型的包装中。自动拆箱的过程:每当需要一个值时,被装箱对象中的值就被自动地提取出来,没必要再去调用intValue()和doubleValue()方法。自动装箱,只需将该值赋给一个类型包装器引用,java会自动创建一个对象。自动拆箱,只需将该对象值赋给一个基本类型即可。java——类的包装器类型包装器有:Double,Float,Long,Integer原创 2021-07-14 16:21:41 · 582 阅读 · 0 评论 -
Lambda表达式详解
【前言】 java8新特性java8 函数接口java8 Optional使用总结Java 8 时间日期使用java8中一个非常重要的特性就是lambda表达式,我们可以把它看成是一种闭包,它允许把函数当做参数来使用,是面向函数式编程的思想,一定程度上可以使代码看起来更加简洁。例如以前我们使用匿名内部类来实现代码: //匿名内部类写法 new Thread(new Runnable() { @Override public v原创 2021-07-14 16:21:09 · 196 阅读 · 0 评论 -
Java 注解的创建与使用
Java 注解的创建与使用说明:\1. @Documented 用于描述其它类型的annotation应该被作为被标注的程序成员的公共API,因此可以被例如javadoc此类的工具文档化。Documented是一个标记注解,没有成员\2. @Inherited 元注解是一个标记注解,@Inherited阐述了某个被标注的类型是被继承的。如果一个使用了@Inherited修饰的annotation类型被用于一个class,则这个annotation将被用于该class的子类。\3. @Rete原创 2021-07-14 16:20:41 · 297 阅读 · 0 评论 -
Java内部类详解
Java内部类详解内部类内部类的定义将一个类定义在另一个给类里面或者方法里面,这样的类就被称为内部类。内部类可以分为四种:成员内部类、局部内部类、匿名内部类、静态内部类,下面我们逐一介绍这四种内部类。成员内部类他定义在另一个类中。一般定义格式如下class C{ class D{ }}因为类C相对与类D在外面,我们且称类C为外部类。成员内部类可以无条件访问外部类的属性和方法,但是外部类想要访问内部类属性或方法时,必须要创建一个内部类对象,然后通过该对象访问内部类的属性原创 2021-07-14 16:19:59 · 102 阅读 · 0 评论 -
堆,栈,方法区,常量池,的概念
堆,栈,方法区,常量池,的概念1.首先看堆,栈,方法区,常量池 的位置分布图2、内存区域类型1.寄存器:最快的存储区, 由编译器根据需求进行分配,我们在程序中无法控制;\2. 堆:存放所有new出来的对象;\3. 栈:存放基本类型的变量数据和对象的引用,但对象本身不存放在栈中,而是存放在堆(new 出来的对象)或者常量池中(对象可能在常量池里)(字符串常量对象存放在常量池中。);\4. 静态域:存放静态成员(static定义的);\5. 常量池:存放字符串常量和基本类型常量(public s原创 2021-07-06 16:33:06 · 328 阅读 · 0 评论 -
JDK、JRE、JVM三者间的联系与区别
JDK、JRE、JVM三者间的联系与区别有Java编程经验的程序员应该都知道:Java程序是运行在JVM(Java虚拟机)上的,在开发程序之前都要配置Java开发环境,其中首先要做的就是JDK的安装和配置,那么JDK、JVM、JRE到底有何联系和区别呢?想必并不是每一个程序员都能说得清楚的,本文接下来将带你了解它们之间的关系。一、JDKJDK(Java SE Development Kit),Java标准开发包,它提供了编译、运行Java程序所需的各种工具和资源,包括Java编译器、Java运行时环原创 2021-07-06 16:32:35 · 257 阅读 · 0 评论 -
Java中值传递和引用传递的区别
Java中值传递和引用传递的区别在Java中参数的传递主要有两种:值传递和参数传递;下面是对两种传递方式在内存上的分析:一:值传递解释:实参传递给形参的是值 形参和实参在内存上是两个独立的变量 对形参做任何修改不会影响实参代码示例如下:[](javascript:void(0)????package arrayDemo;public class Demo1 { public static void main(String[] args) {原创 2021-07-06 16:32:06 · 152 阅读 · 0 评论