自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Java并发之volatile

volatile 与 并发三特性volatile 保证可见性volatile修饰共享变量,一旦一个线程对该共享变量作出修改,当修改写回主内存时,会使得其他访问该共享变量的线程中的值失效,从内存中重新提取最新修改后的值。public class DemoVisibility { // 1、创建一个共享变量 private static volatile boolean flag = true; private static Object obj = new Object();

2020-08-18 21:09:43 205

原创 Java并发之synchronized

并发编程的三个问题可见性可见性 是指一个线程对共享变量进行修改,其他线程立即得到修改后的最新值。可见性演示:    1、创建一个共享变量    2、创建一条线程不断读取共享变量    3、创建另一条线程修改共享变量public class DemoVisibility { // 1、创建一个共享变量 private static boolean flag = true; public static void main(String[] args) throws I

2020-08-18 16:42:28 241

原创 Java基础之反射

反射    反射是由 Class 对象开始的,从 Class 对象中,我们可以获得:    1、有关该类的全部成员的完成列表;    2、该类的所有类型(它实现的接口和扩展的类);    3、有关该类自身的信息,如:应用的修饰符、所在的包。反射通过字节码文件找到其类中的方法和属性等反射机制    Java反射机制是在运行状态中1、对于任意一个类,都能够知道这个类的所有属性和方法;2、对于任意一个对象,都能够调用它的任意一个属性和方法;    这种动态获取的信息以及动态调用对象的方

2020-08-17 16:30:06 195

原创 Java并发之线程状态

线程状态新建状态(NEW)    使用 new 操作符创建一个线程,并且尚未调用 start() 方法,此时线程处在新建状态。Thread t = new DemoThread();System.out.println(t.getState());// output: NEW可运行状态/就绪状态(RUNNABLE)    一个新创建的线程并不自动开始运行,要执行线程,必须调用线程的 start() 方法。当线程对象调用 start() 方法即启动了线程,start() 方法创建线程运

2020-08-04 18:25:34 247

原创 Java并发之多线程的实现方式

多线程的四种实现方式继承 Thread 类实现多线程创建一个类,并继承 Thread 类重写 Thread 类中的 run() 方法(业务代码)实例化创建好的线程类调用实例化对象的 start() 方法启动线程public class ThreadDemo { public static void main(String[] args){ // 3、实例化创建好的线程类 Thread t = new DemoThread(); // 4

2020-08-01 17:30:10 305

原创 Java并发之进程与线程的区别

进程与线程何为进程    进程是程序的一次执行过程,是系统进行资源分配的基本单位,实现了操作系统的并发。系统运行一个程序即是一个进程从创建,运行到消亡的过程。何为线程    线程是一个比进程更小的执行单位,是CPU调度和分派的基本单位,一个进程在其执行的过程中可以产生多个线程,实现的是进程内部的并发。进程与线程的区别进程线程系统进行资源分配的最小单位程序执行的最小单位实现的是操作系统的并发实现的是进程内部的并发进程有自己独立的地址空间线程共享数据创建、

2020-08-01 17:27:01 162

原创 Java基础之String、StringBuilder 和 StringBuffer 的区别

String、StringBuilder 和 StringBuffer 的区别String 与 (StringBuilder 和 StringBuffer) 的区别String StringBuilder 与 StringBuffer 字符串数组用final修饰,不可变 字符串数组未用final修饰,可变     String字符串数组用final修饰,导致每次对String对象的修改操作都会生成新的String对象,不仅效率低下,而且浪费大量优先的内存空间。S...

2020-07-31 16:04:57 153

原创 Java基础之StringBuilder 与 StringBuffer

StringBuilder 与 StringBuffer类的定义public final class StringBuilder extends AbstractStringBuilder implements java.io.Serializable, CharSequencepublic final class StringBuffer extends AbstractStringBuilder implements java.io.Serializab

2020-07-31 15:42:55 160

原创 JVM之运行时数据区

JVM 运行时数据区    Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域。这些区域有各自的用途,以及创建和销毁的时间,有的区域随着虚拟机进程的启动而一直存在,有些区域则是依赖用户线程的启动和结束而建立和销毁。程序计数器线程私有,生命周期与线程相同可以看作是当前线程所执行的字节码的行号指示器    程序计数器(Program Counter Register)是一块较小的内存空间,它可以看作是当前线程所执行的字节码的行号指示器。在Java虚拟机的概念

2020-07-30 12:53:03 195

原创 Java基础之String

String 1.8类的定义public final class String implements java.io.Serializable, Comparable<String>, CharSequenceString类使用final关键字修饰,限制了该类无法被继承,里面的方法也无法被重写。这是String对象不可变的第一点。类的成员变量/** The value is used for character storage. */private f...

2020-07-28 23:41:48 174

原创 Java基础之面向对象编程--多态

多态1、方法的多态性    * 重载    * 重写2、对象的多态性:父子实例之间的转换处理    * 对象向上转型:父类 父类实例 = 子类实例;    * 对象向下转型:子类 子类实例 = (子类)父类实例; //目的:使用子类特有的功能多态的实现方式基于继承的实现 基于接口的实现实现多态的必要条件继承 重写 向上转型...

2020-07-28 16:19:26 104

原创 Java基础之Object类

Object: 所有类的超类    在Java中每个类都是由Object扩展而来,如果没有明确指出超类,Object就被认为是这个类的超类。equals() hashCode() toString()equals()方法Object类中equals()方法源码public boolean equals(Object obj) { return (this == obj);}    Object类中equals()方法仅判断两个对象是否具有相同的引...

2020-07-28 15:40:36 220

原创 Java基础之面向对象编程--继承

继承 即 在已有结构的基础上进行功能的扩充    假如你在一个公司工作,公司中经理和普通员工的待遇有些差异,但他们之间也存在很多共同的地方。例如,他们都领取薪水。而经理在完成了预期的业绩之后还能额外得到奖金。    这种情形 就需要用到继承。为经理新建一个类,以便增加一些新的功能,同时可以重用普通员工类中已经编写好的部分。继承的目的代码重用,子类重用父类代码 功能扩充,子类扩充父类功能具体实例使用extends关键字实现继承    extends表明正在构造一个新类派生...

2020-07-28 12:39:05 205

原创 Java基础之面向对象编程--封装

封装 即 属性私有化实现步骤将类中的变量修饰符设为private 创建getter()/setter()方法,提供公共对外访问接口 在getter()/setter()方法中加入属性控制语句案列public class Person { // step 1: 属性私有化 private String name; private int age; // step 2: 提供公共对外访问接口 public String getName() ...

2020-07-27 16:36:22 121

空空如也

空空如也

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

TA关注的人

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