自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 this关键字的作用

如下:package com.interview.javabasic.java;public class Chirdren extends Parent { public static void main(String[] args) { Parent parent=new Chirdren(); parent.test(); //运行结果如下 // 1,1,test2 } @Override p

2020-05-11 16:00:37 169

原创 shardingsphere分库分表多表关联查询

shardingsphere分库分表表关联查询的应用1.准备工具mysql2.sql语句如下;demo_ds_0数据源表结构CREATE DATABASE demo_ds_0 CHARSET=utf8;use demo_ds_0;DROP TABLE IF EXISTS t_user_0;CREATE TABLE t_user_0 (user_id bigint(20) AUTO_...

2020-04-23 15:39:29 13376 2

转载 关于java中final理解

java语言中,如果共享对象是一些基本数据类型,只需要用final修饰,就可以保证该类为不可变类如果贡献对象是一个对象,则需要在对其构造进行深度克隆...

2019-06-30 10:43:18 159

原创 java的编译过程

2019-06-20 20:52:04 118

原创 final初始化时间

final初始化时间为在构造方法完毕前。(非静态的常量)如以下: /* final修饰变量初始化时机 A:被final修饰的值只能赋值一次 B:在构造方法完毕前。(非静态的常量)*/class Demo{ //int num = 10; //final int num2 = 20; int num; final int num2; { //...

2019-06-18 20:50:09 793

原创 jvm中分派的理解

静态分派指的是重载,动态分派指的是重写静态分派:public class StaticDispatch { static abstract class Human{ } static class Man extends Human{ } static class Woman extends Human{ } public static void sayHello(Human...

2019-06-15 15:20:55 139

翻译 关于jvm-java中init与clint区别

init是instance实例构造器,对非静态变量解析初始化,而clinit是class类构造器对静态变量,静态代码块进行初始化class X { static Log log = LogFactory.getLog(); // <clinit> private int x = 1; // <init> X(){ // <i...

2019-06-12 20:05:34 740

原创 compareAndSet示例

2019-04-25 21:22:56 432

转载 多线程安全之automic

import java.util.concurrent.atomic.AtomicInteger;/**volatile不具备synchronized关键字的原子性(同步)AtomicInteger具备原子性(同步)*/public class VolatileNoAtomic extends Thread{//private static volatile int count...

2019-04-25 20:07:05 1537

原创 关于局部变量就是线程安全的理解

网上看到好多定论说是局部变量就是线程安全的。但是我觉得对大家都造成了一些误解,例如以下;package Test;public class Demo_5 { public static void main(String[] args) { //创建一个窗口 TicketWindow tw1=new TicketWindow(); //使用三个线程同时启动 Thread t...

2019-04-05 11:39:50 943 1

原创 组合实现多线程安全

关于ImproveList我前前后后消化了很长时间!// 4-16 通过组合实现“若没有则添加”@ThreadSafepublic class ImprovedList implements List { //实现List接口private final List list;/** * PRE: list argument is thread-safe...

2019-03-07 19:58:49 123

原创 不可变类理解

不可变类,没有setter方法

2019-03-07 15:00:50 167

原创 不可变类在先判断后执行条件下注意点

对于有条件线程安全类(该类是不可变类),如果遇到需要进行有先判断后执行的时候,则需要进行使用加监视器的方式,避免竞争,但是如果没有进行先判断后执行,则可以不使用监视器模式,因为线程安全类可以被代理,但是该本类的成员变量应该欸final...

2019-03-07 14:35:48 130

原创 原始数据与不可变条件

不可变类:是指当创建了这个类的实例后,就不允许修改它的属性值。在JDK的基本类库中,所有基本类型的包装类,如Integer和Long类,都是不可变类,java.lang.String也是不可变类。不可变类:当你获得这个类的一个实例引用时,你不可以改变这个实例的内容。不可变类的实例一但创建,其内在成员变量的值就不能被修改。如何创建一个不可变类?这道题90%以上的人都会被挂或者只回答一半对,...

2019-03-07 11:29:59 186

原创 深入理解java线程安全

static创建对象是线程安全的,因为jvm对线程是存在安全机制,如class oneValueCache他是一个不可变对象,然后3-13清单是一个非可变对象,但是他是线程安全的,因为,req和resp都是局部变量,所以i与factors是安全的,虽然lastNumber没有使用深度复制,但是我存的都死巨变变量,多线程之间互不影响,另外cache使用了volatile,将对象刷新到内存中,使得...

2019-03-06 15:28:35 214

空空如也

空空如也

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

TA关注的人

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