Java
MorKANA
这个作者很懒,什么都没留下…
展开
-
Java冷知识之——魔数(Magic Number)
一、 编程中的魔数在阿里巴巴Java开发手册编程规约第二节常量定义的第一条中写道:魔法值(即魔数)指的是未经预先定义的常量,而反例中的 “Id#taobao_” 则叫做魔字符串(Magic String)。这一规定在《Clean Code》和各大公司的代码规范手册中都有被提及过,那为什么这样规定呢?《计算机程序的构造和解释》一书中表达过这种观点:代码的第一要义是供人类理解,其次才是能正...原创 2020-02-26 18:47:21 · 6825 阅读 · 0 评论 -
JVM—什么是类加载
开门见山 解决问题类加载是JVM将Java程序运行所需的class文件加载到内存中的的一个过程。class文件内包含了类的各种描述信息。类加载包含加载、验证、准备、解析和初始化五个阶段。类的生存周期包含以下过程:类加载的五阶段1. 加载JVM在这个阶段完成:根据类的全限定名获取定义此类的二进制字节流,并没有指明要从一个class文件中获取,可以从其他渠道,譬如:网络、动态生...原创 2020-02-09 22:16:32 · 266 阅读 · 0 评论 -
读深入理解JVM之-什么是逃逸分析
开门见山 解决问题逃逸分析(Escape Analysis)本质上是JVM(以下的JVM均代表Hotspot虚拟机)的一种分析对象作用域的算法,或者可以称之为是JVM的一种优化技术。它的作用是让JVM编译器能...原创 2020-01-10 22:37:49 · 481 阅读 · 0 评论 -
区分-JVM内存分区和Java内存模型(Java Memory Model)
也是最近被问到了Java内存模型,学识浅薄,一直以为内存分区和内存模型是一个东西,现在做一下笔记整理一下以区分和学习这两个概念及其延伸的一些知识点。开门见山 解决问题JVM内存分区具体指的是JVM中运行时数据区的分区。 JMM是一种规范,是抽象的概念,目的是解决由于多线程并发编程通过内存共享进行通信时,存在的本地内存数据不一致、编译器会对代码指令重排序、处理器会对代码乱序执行等带来的问题...原创 2019-05-08 17:55:13 · 8100 阅读 · 0 评论 -
Java包(package)是干什么的?和import什么区别?
这就是后果,从学习Java最开始就没注意细节,虽然简单,虽然甚至有些编译器会替你完成,但你看你在项目修改和转移时废了多大劲!package全球有辣么多软件公司开发了辣么多Java类,因此类的同名情况是不可避免的,Oracle允许在类名前加前缀来限定,提供了类的多层命名空间,以此解决类命名冲突、类文件管理等问题,这就是Package机制。在设计类时中可以把一组功能相关的类放在同一pac...原创 2019-05-15 18:19:51 · 3859 阅读 · 0 评论 -
Java并发-AQS是什么及AQS做了什么
开门见山 解决问题AQS是什么:AQS,是AbstractQueuedSynchronizer简称,直翻过来叫抽象的队列式同步器, 也可以称作队列同步器,它是java.util.concurrent.lock包下的一个工具类。直观来讲,AQS是Java提供的一个类,这个类是被Abstract修饰的,需要被子类继承。也就是说AQS是Java并发中用以解决多线程访问共享资源问题的同步机制的基本的框...原创 2019-05-20 21:15:03 · 1811 阅读 · 0 评论 -
Java io流System.in.read()如何使用
开门见山 解决问题这里提到的read()方法是指java.io包下InputStream里的read()。InputStream类提供了一个抽象read方法及它的两个重载方法,分别是:abstract int read() //从键盘缓冲区读取一个字节,返回该字节的ASCII码int read(byte[] b) //从键盘缓冲区读取一个字节数组,返回字节数int read(by...原创 2019-06-19 20:02:13 · 6297 阅读 · 0 评论