- 博客(6)
- 资源 (2)
- 收藏
- 关注
原创 进程,线程,抢占式调度,synchronized锁,AtomicInteger解决原子类问题的具体过程
多线程的定义:Java中的多线程是指同一个java进程下的多个线程交叉执行。是不是听起来很晕?晕就对了,我也在想世界上怎么会有这么有逻辑的话术,简练到不符合中文的逻辑,有种初学英语的晦涩感。实际上,多线程的概念没有想象中的那么复杂,是有方法的。只要真正的明白理解它了,那么后面的原子性和不可见性就简单了,所以接下来我将说一下个人的理解思路:我个人是通过拆分理解它的,首先是知道进程,线程是什么东西。进程:程序运行的一次过程,ye'jiu'shi说系统运行一次就相当于一个进程从新建,运行,死亡的过程。
2020-06-25 09:45:26
236
原创 为什么迭代时集合方法修改长度报异常,为什么删除倒数第二个元素不报异常,为什么迭代器方法删除不报异常,看源码的步骤
class Itr implements Iterator<E> { int cursor; // 指针变量 默认是0 指针从0开始的最多到length-1 int lastRet = -1; // index of last element returned; -1 if no such //lastRet中文意思是修改 private int modCount; //将修改次数 modCount赋值给 期待值 int expected.
2020-06-16 23:13:38
453
原创 隐式三步,静态构造代码块,构造方法,main方法之间的运行顺序问题
package com.itheima; class M{ private int a; { System.out.println("我是父类的构造代码块");//5 } static { System.out.println("我是父类的 静态代码块");//3 } public M(){ System.out.println("a还没有赋值"+a);//6 System.out.prin.
2020-06-16 22:05:01
609
原创 隐式三步,类成员赋值与代码块加载过程,继承时对于非静态成员方法,编译看父类,运行看子类
拥有隐式三步的原因:java中一切一切皆对象,一个类中如果没有书写构造方法,系统会默认赠送一个无参构造方法,里面默认有三步:1,super();调用父类无参构造2,给非静态成员变量赋值3,执行构造代码块 这就是成员变量可以不赋值就使用的原因,在一些比较压轴的面试题里面很容易出现类似的题目,理解隐式三步有利于理清代码执行过程。...
2020-06-16 20:30:03
776
原创 面向对象三天内容的总结
(第一天)1,编程思想:面向对象编程-->强调的是对象,通过对象调用类中或者接口中的方法完成功能。 :面向过程编程-->强调的是过程,按照具体步骤完成某项功能。类和对象:类是拥有共同属性或者行为的事务统称,是一种抽象的概念,除了提供一种模板外描述一类事务外,没有具体的作用,其中属性一般定义为成员变量,行为定义为方法。 :对象是一个具体存在的实例,是看得见摸得着的,因为对象是类的实例,所以可以通过对象去调用类中的属性和行为。内存图的加载顺序,程序运行都是先从主方法先运行的,所以
2020-06-15 23:30:46
137
原创 面向对象与面向过程及类与对象的逻辑分析
编程思想: 编程思想分为面向对象和面向过程。因为面向对象编程采用模板化设计,每个模块既可以单独存在也可以重复使用,这种编程方法具有通用性,所以面对对象编程方法变成了当下最流行的编程方法。 面向过程 面向过程最主要则是针对程序设计的具体细节步骤,要完成某个功能,必须要按照具体步骤一步步操作,才可以完成功能。 缺点是:需要每步都知道逻辑,都必须知道怎么完成每个步骤,不然就完成不了。并且每完成不同的功能需要不同的过程,需要不同的步骤,容易造成代码冗余。而且,每次需要某种功能都需...
2020-06-15 15:45:05
278
2
Test2.java
2020-06-16
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人