![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
文章平均质量分 88
雀跃set
此人很懒
展开
-
GROUP_CONCAT聚合函数inner join关联空表之后,查询有值
聚合函数group_concat要跟随group by,不然就会导致一下场景:b表为空表,按理说查询出来结果应该为0select count() from (SELECT a.,GROUP_CONCAT(b.nickname SEPARATOR ‘,’) user aINNER JOIN b on a.uid=b.uid where b.state=‘0’ )x但是查询出来的结果会是1...原创 2020-03-04 16:51:52 · 595 阅读 · 0 评论 -
java三大特性的优点
java的三大特性(封装,继承,多态)1.封装: 面向对象程式设计中,封装(Encapsulation)就是把类的内部与外界隔离起来,把实现数据和方法的包装(隐藏),防止该类的代码和数据被外部类定义的代码随机访问。要访问该类的代码和数据,必须通过特定的方式。2.继承:继承是所有OOP语言和Java语言不可缺少的部分。当创建一个类时,总是在继承,除非已经明确声明继承某个类,不然默认继承Java的...原创 2019-11-11 10:46:10 · 1654 阅读 · 0 评论 -
java字节码和指令码功能说明
Java二进制指令代码解析Java源码在运行之前都要编译成为字节码格式(如.class文件),然后由ClassLoader将字节码载入运行。在字节码文件中,指令代码只是其中的一部分,里面还记录了字节码文件的编译版本、常量池、访问权限、所有成员变量和成员方法等信息(详见Java字节码格式详解)。本文主要简单介绍不同Java指令的功能以及在代码中如何解析二进制指令。Java指令是基于栈的体系...转载 2019-09-22 18:01:14 · 535 阅读 · 0 评论 -
线程Thread类清晰解读
Thread源码阅读与实例解析,看一遍就会用了原创 2019-09-19 19:00:29 · 385 阅读 · 0 评论 -
volatile看完你就明白了
volatile底层原理详解volatile理解物理机内存机制java内存模型不使用volatile的样例volatile例子volatile理解关键字volatile可以说是java虚拟机提供的最轻量级的同步机制,将一个变量定义为volatile之后,它将具备两种特性,一是可见性,一是禁止指令重排序,下面我们就具体来说一下物理机内存机制在了解java内存模型的前提上,我们可以先理解一下物...原创 2019-09-14 21:30:21 · 804 阅读 · 0 评论 -
String源码查看以及相关知识理解
1.String为什么是不可变的答:经常的逻辑之中,String str=“aaa”,其中str就是“aaa”就是不可变的,我们说String不可变,指的就是String被final给修饰了,我们对String进行赋值的时候,就是让它指向了常量池的引用,我们再改变值的时候,其实并没有改变常量池中这个str对应的值,我们改变的只是引用。2.String str=new String("abc...原创 2019-09-09 17:23:34 · 116 阅读 · 0 评论 -
java中的synchronized关键字
1.什么是锁锁是一种同步机制,一般在java中所说的锁就是指的内置锁,每个java对象都可以作为一个实现同步的锁,锁用于在有许多执行线程的环境中强制对资源的访问限制。2.锁的分类公平锁和非公平锁公平锁是指多个线程按照申请锁的顺序来获取锁。非公平锁是指多个线程获取锁的顺序并不是按照申请锁的顺序,有可能后申请的线程比先申请的线程优先获取锁。有可能会造成优先级反转或者饥饿现象。对于Java ...原创 2019-08-16 14:22:00 · 242 阅读 · 0 评论 -
对象死亡
##一.那些内存需要垃圾回收程序计数器、虚拟机栈、本地方法栈这三个区域栈帧中分配多少内存是在类结构确定下来时就已知的,这几个区域的内存分配和回收东具有确定性方法区和java堆则是不同的,一个接口中的多个实现类需要的内存可能不一样,一个方法中的多个分支需要的内存也可能不一样,我们只有在程序处于运行期间时才能知道会创建那些对象,这部分内存的分配和回收都是动态的,垃圾回收器所关注的时这部分内存#...原创 2019-08-16 14:21:00 · 134 阅读 · 0 评论 -
new一个对象
简介对于通过new创建对象的方式我们都很熟悉,也都能熟练的使用它,那么到底创建一个对象有没有这么简单呢,下面是创建一个对象实例的步骤1.检查虚拟机遇到一条new指令时,首先将去检查这个指令的参数是否能在常量池中定位到一个类的符号引用,常量池位于运行时数据区的方法区之中,同时检查这个符号引用代表的类是否已被加载、解析和初始化过,如果没有,那必须先执行相应的类加载过程2.分配内存在类...原创 2019-08-16 14:20:13 · 5005 阅读 · 0 评论 -
java的生命周期
一.类的生命周期总览类从被加载到虚拟机内存中开始, 到卸载出内存为止, 它的整个生命周期包括: 加载(Loading) 、 验证(Verification) 、 准备(Preparation) 、 解析(Resolution) 、 初始化(Initialization) 、 使用(Using) 和卸载(Unloading)7个阶段。 其中验证、 准备、 解析3个部分统称为连接...原创 2019-08-20 17:57:49 · 6268 阅读 · 0 评论