java
小左01
Android 程序员
展开
-
java 单例的几种写法---面试必备
随着我们编写代码的深入,我们或多或少都会接触到设计模式,其中单例(Singleton)模式应该是我们耳熟能详的一种模式。面试中也经常被问到,应该是必备技能。实现思路在单例的类中设置一个private静态变量sInstance,sInstance类型为当前类,用来持有单例唯一的实例。将(无参数)构造器设置为private,避免外部使用new构造多个实例。提供一个public的静态方法,如get原创 2016-11-18 21:03:52 · 356 阅读 · 0 评论 -
String ,StringBuilder 和StringBuffer的区别
1、String:public final class String implements java.io.Serializable, Comparable<String>, CharSequence { /** The value is used for character storage. */ private final char value[];...原创 2019-03-14 16:55:45 · 175 阅读 · 0 评论 -
java 停止线程的正确方式
在看一个问题的时候突然想到之前面试,有一个面试官问我,怎么停止线程,突然断片了,趁着现在有时间,做一下总结。在网上看了几篇文章,我这篇文章大致记录一下,1、第一种方式:使用stop方法终止线程这种方式最直接了当,但是也是不可取的,调用stop()方法时会抛出java.lang.ThreadDeath异常,但是通常情况下,此异常不需要显示地捕捉public class MyThre...原创 2019-06-18 00:14:47 · 185 阅读 · 0 评论 -
java synchronized的实现原理
面试经常被问道synchronized关键字,有的是以题目的形式让你判断能不能执行,有的直接问实现原理,今天梳理一下使用方式Java中每一个对象都可以作为锁,这是synchronized实现同步的基础:普通同步方法,锁是当前实例对象静态同步方法,锁是当前类的class对象同步方法块,锁是括号里面的对象当一个线程访问同步代码块时,它首先是需要得到锁才能执行同步代码,当退出或者抛出异...原创 2019-06-22 13:15:32 · 166 阅读 · 0 评论 -
java一个对象占用多少字节?
最近在读《深入理解Java虚拟机》,对Java对象的内存布局有了进一步的认识,于是脑子里自然而然就有一个很普通的问题,就是一个Java对象到底占用多大内存?1、JAVA 对象布局在 HotSpot虚拟机中,对象在内存中的存储的布局可以分为三块区域:对象头(Header),实例数据(Instance Data)和对齐填充(Padding)1.1对象头(Header):Java中对象头由 ...原创 2019-06-26 12:32:41 · 10016 阅读 · 6 评论 -
java 负数的二进制表示
JAVA 基础系列计算机对有符号数(包括浮点数)的表示有三种方法:原码、反码和补码,三种表示方法均有符号位和数值位两部分,符号位都是用0表示“正”,用1表示“负”反码:原码按位取反补码:反码+1移码:移码(又叫增码)是符号位取反的补码对于负数而言,是以补码的形式存储在内存中的。以-7(int)为例第一步:将-7的绝对值转化为二进制 0000 0111第二步:将上面的二进制以反码表...原创 2019-06-26 20:18:04 · 2426 阅读 · 0 评论 -
java中的移位运算符
java 基础系列1、 左移运算符左移运算符<<使指定值的所有位都左移规定的次数。1)它的通用格式如下所示:value << numnum 指定要移位值value 移动的位数。左移的规则只记住一点:丢弃最高位,0补最低位如果移动的位数超过了该类型的最大位数,那么编译器会对移动的位数取模。如对int型移动33位,实际上只移动了33%32=1位。2)运算规则...原创 2019-06-26 21:12:57 · 237 阅读 · 0 评论