![](https://img-blog.csdnimg.cn/20190918140158853.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Java
文章平均质量分 95
用来记录和分享 “Java“ 相关知识点。
xing.tang
迷茫,只是因为想得太多,做得太少。
展开
-
Java 浅拷贝与深拷贝
1、什么叫Java浅拷贝? 浅拷贝是会将对象的每个属性进行依次复制,但是当对象的属性值是引用类型时,实质复制的是其引用,当引用指向的值改变时也会跟着变化。2、什么叫Java深拷贝? 深拷贝复制变量值,对于引用数据,则递归至基本类型后,再复制。深拷贝后的对象与原来的对象是完全隔离的,互不影响,对一个对象的修改并不会影响另一个对象。3、Java浅拷贝和深拷贝的区别是什么? 通俗来讲浅拷贝的复...原创 2019-11-27 09:21:28 · 8827 阅读 · 3 评论 -
Java 虚拟机(JVM (Java Virtual Machine))
1、Java 程序的编译和运行过程如下图所示:2、Java 运行时内存区域类型Java 内存区域图如下:JVM 所管理的内存分为以下几个运行时数据区:方法区、Java 虚拟机栈、本地方法栈、Java 堆、程序计数器。方法区:线程共享,所有已经被虚拟机加载的类的信息、常量、静态变量和即时编辑器编译后的代码数据。Java 虚拟机栈:线程私有,面 向java,描述 Java 方法执行的内存模型,每个方法在执行的同时会创建一个栈帧,存储着局部变量、操作数栈、动态链接和方法出口等,线程私有。本原创 2019-03-01 16:50:55 · 1569 阅读 · 0 评论 -
Java 锁
1、多线程间的原子性、可见性、有序性是什么意思?原子性:执行一个或者多个操作的时候,要么全部执行,要么都不执行,并且中间过程中不会被打断。独占锁 和 CAS 能够保证原子性。可见性:指多线程访问同一个变量的时候,一个线程修改了变量的值,其他线程能够立刻看得到修改的值。锁 和 volatile 能够保证可见性。有序性:程序执行的顺序按照代码先后的顺序执行。锁 和 volatile 能够保证有序性。2、happens-before 原则有哪些?Java 内存模型具有一些先天的有序性,它通常叫做原创 2019-03-01 15:33:54 · 223 阅读 · 0 评论 -
Java 实现同步的几种方式
1、Java 实现同步的几种方式使用 synchronized 关键字使用 ReentrantLock(可重入锁)以及 Condition。使用 java.util.concurrent.atomic 包中提供的类,如 AtomicInteger 等,能够实现多个线程对该类型的数据操作时的原子性(相当于保证线程间获取的到数据是最新的)。这些类的实现,主要通过使用 volatile 来修饰属性。并发包下的工具类,分别有:(1)CountDownLatch: 允许一个或多个线程等待其他线程完成操作。原创 2019-03-01 15:46:56 · 13130 阅读 · 0 评论 -
Java 线程
1、线程是什么?一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。一个进程包括由操作系统分配的内存空间,包含一个或多个线程。一个线程不能独立的存在,它必须是进程的一部分。一个进程一直运行,直到所有的非守护线程都结束运行后才能结束。通俗来说,线程是 CPU 调度的最小单位,一个进程中可以包含多个线程,在 Android 中,一个进程通常是一个 App,App 中会有一个主线程,主线程可以用来操作界面元素,如果有耗时的操作,必须开启子线程执行,不然会出现原创 2022-03-16 10:09:53 · 240 阅读 · 0 评论