自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(13)
  • 收藏
  • 关注

原创 java Thread的生命周期及源码学习

相信所有java工程师对Thread类都已不再陌生,这篇文章主要是对Thread类的一些方法使用进行描述解读,算是跟大家分享一下知识,同时自己也在学习一遍。我们就按一个线程的生命周期开始解读吧。 新建(NEW) 当程序计数器执行了new Thread方法以后,一个新的线程就创建了,此时这个thread处于新建状态。Thread类提供了九个构造方法来创建实例。1.public Th...

2019-05-28 20:01:38 222

原创 Java实现多线程的四种方式

Java目前的线程有两种,一种是通过实现Runable接口的方式,一种是通过实现Callable<T>的接口的方式。区别在于实现Callable<T>接口执行的线程可以很方便的获取到线程的返回对象T,同时,Callable的执行方法允许有异常抛出。我们通过这两种方式来说明现有的新起一条线程的方式: 实现Runable接口,重写run方法,构建Thread. 1...

2019-05-27 22:25:18 183

原创 HashMap原理

为什么要针对HashMap做一篇文章,一方面是因为面试中经常被问到这个问题,另一方面主要是在工作中经常用到HashMap,既然经常用到,不能不懂它的原理啊。 定义 * Hash table based implementation of the <tt>Map</tt> interface. This * implementation provides a...

2019-05-26 22:24:47 835

原创 JAVA int类型 获取高低位

去年笔者和一个硬件厂商调试打印机的时候遇到这个一个问题,厂商需要打印报文中传输报文的长度标志,将长度的高位和低位放到两个字节里,笔者由于基础知识不牢固,在这个问题上浪费了较长时间,今年开始写博客了,就记录一下这个问题。首先,int类型在java中是4个字节,每个字节8位,即int是32位的数据类型。int的高位为前三个字节,低位为最后一个字节(为什么这样组装笔者查了一些资料,理解的还不是很透彻...

2019-05-24 17:20:12 6043

原创 JAVA按位运算符

java按位运算符 运算符 算法 &(与) 如果相对应位都是1,则结果为1,否则为0 |(或) 如果相对应位都是0,则结果为0,否则为1 ^ (异或) 如果相对应位值相同,则结果为0,否则为1 ~(非) 按位取反运算符翻转操作数的每一位,即0变成1,1变成0。 << (左移) 按位左移运算符。左操作数按位左移右操作数指定...

2019-05-24 16:21:25 1983 1

原创 深入理解JAVA虚拟机阅读理解(四)线程安全

线程安全 当多个线程访问一个对象时,如果不用考虑这些线程在运行时环境下的调度和交替执行,也不需要进行额外的同步,或者在调用方法进行任何其他的协调操作,调用这个对象的行为都可以获得正确的结果,那这个对象是线程安全的。-----Brian Goetz笔者理解:当一个线程访问一个对象期间,不用考虑因为其他线程的访问造成该线程获取到错误的结果,那这个对象是线程安全的。 JAVA语言中的线...

2019-05-22 20:02:51 161

原创 jdk1.8新特性学习(二)Stream

Stream 官方给出的解释是:A sequence of elements supporting sequential and parallel aggregate operations.翻译过来是:一个支持顺序和并行聚合操作的元素序列。笔者的理解:Stream是一个提供了对集合的元素进行多种辅助性操作的集合。 获取Stream 官方提供了多种获取Stream的方式。1.p...

2019-05-20 19:58:43 646

原创 深入理解JAVA虚拟机阅读随笔(三)Java与线程

java工程师对线程一般都不难理解,我们知道线程是进程中的一条执行工作,知道多线程与单线程的区别,但很少有人知道线程的实现原理是什么,java虚拟机是怎样在服务器上创建并执行一条线程的,这就是本篇文章所要讲解的内容。 什么是线程 线程是比进程更轻量级的调度执行单位,线程的引入,可以把一个进程的资源分配和执行调度分开,各个线程既可以共享进程的资源(内存地址、文件I/O等),又可以独立调度(...

2019-05-17 11:58:12 211

原创 深入理解JAVA虚拟机阅读随笔(二)hotspot虚拟机对象探秘

对象的创建 Java是一门面向对象的编程语言,随时都有对象在创建。代码层面最常见的是new关键字创建,那么虚拟机是怎么执行一个对象的创建过程的呢?当虚拟机遇到一条new指令时,首先会去检查这个指令的参数在常量池中能否定位到一个类的符号引用,并且检查这个符号引用的类是否已经加载、解析和初始化过,如果没有,那么必须先执行相应的类加载过程。类加载的过程在别的文章详解。类加载通过后,虚拟机将会...

2019-05-15 16:06:53 202

原创 idea本地tomcat控制台乱码问题

将File Encodings 设置为UTF-8 找到idea安装根目录,在文件idea.exe.vmoptions和idea64.exe.vmoptions中添加编码命令-Dfile.encoding=UTF-8

2019-05-14 17:50:10 330

原创 JDK1.8新特性(一)Optional类

认识Optional 类注解源码:/** * A container object which may or may not contain a non-null value. * If a value is present, {@code isPresent()} will return {@code true} and * {@code get()} will retur...

2019-05-14 12:55:23 4112 1

原创 springboot项目根据yml或者properties属性设置logback多环境配置

实现思路 通过在logback配置文件中引入yml或properties中的属性,从而实现通过yml或者properties配置实现logback属性配置。 实现步骤 以application.yml,application-dev.yml文件为例 1.在application.yml文件中设置活跃文件来引用dev。spring: profiles:...

2019-05-08 16:44:03 4854

原创 深入理解JAVA虚拟机阅读随笔(一)运行时数据区域

Java虚拟机在执行JAVA程序的过程中会把它所管理的内存划分为若干个不同的数据区域。这些区域都有各自的用途,以及创建和销毁的时间,有的区域随着虚拟机进程的启动而存在,有的区域则依赖用户线程的启动和结束而建立和销毁。根据《Java虚拟机规范(Java SE 7 版)》的规定,Java虚拟机所管理的内存将会包括以下几个运行时数据区域:jvm运行时数据区域结构图从图中我们可以看出,程序计数...

2019-05-08 15:25:53 189

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除