
java
轩轩Aminent
这个作者很懒,什么都没留下…
展开
-
锁机制--------Synchronized
原创 2022-05-06 17:29:07 · 150 阅读 · 0 评论 -
2022-02-03 线程生命周期
概念生命周期可以通俗地理解为“从摇篮到坟墓”(Cradle-to-Grave)的整个过程。线程的生命周期包括从创建到终结的整个过程。我们在Thread类中发现了一个内部枚举类,这个State就可以表示一个线程的生命周期:public enum State {/**状态 描述【NEW】 这个状态主要是线程未被Thread.start()调用前的【RUNNABLE】 线程正在JVM中被执行,等待来自操作系统(如处【BLOCKED】 阻塞,因为某些原因不能立即执行需要挂起等待【WAITING】无原创 2022-02-03 18:53:28 · 349 阅读 · 0 评论 -
2022-02-03 守护线程
概念介绍Java提供两种类型的线程:用户线程 和守护程序线程 。守护线程旨在为用户线程提供服务,并且仅在用户线程运行时才需要。守护线程只在用户线程存在的期间运行,用户线程消失守护线程也就消失了!实例如下:运行结果:...原创 2022-02-03 18:09:41 · 314 阅读 · 0 评论 -
2022-1-29 线程调用详细过程
创建Thread类之后调用本来的run方法还是重写了的run方法如下图:原创 2022-01-29 21:59:02 · 389 阅读 · 0 评论 -
vscode中搭建Java环境
请访问此知乎vscode中搭建Java环境原创 2021-12-11 11:11:09 · 911 阅读 · 0 评论 -
2021-11-14 进程和线程(上下文切换)创建线程的方法
进程和线程一、进程一个正在执行中的程序就是一个进程,系统会为这个进程发配独立的【内存资源】。进程是程序的一次执行过程,它有自己独立的生命周期,它会在启动程序时产生,运行程序时存在,关闭程序时消亡。比如正在运行的QQ、IDEA、浏览器就是进程。其实,谈及计算机时,永远不能简单的避开计算机的发展史。最原始的计算机就是单进程的,同一时间只能执行一个进程,我们可以把现在的【计算器】当做最原始的计算机,同一时间只能执行一段代码。比如我们要计算一个账本的总账,只能一个数字一个数字的相加,而且,在这其中你还不能原创 2021-12-09 21:49:19 · 430 阅读 · 0 评论 -
2021-11-13 枚举、Enum中的常用类、Enum中添加新方法、switch语句中的Enum、Enum静态导入、枚举实现单例设计模式
枚举1、引入在某些情况下,一个类的对象的实例有限且固定的,如季节类,它只有春夏秋冬4个对象,再比如星期,在这种场景下我们可以使用枚举。当然我们也可以有自己的方法来实现,法一:public class SeasonConstant { public static final int SPRING = 1; public static final int SUMMER = 2; public static final int AUTUMN = 3; public static final int原创 2021-11-14 09:58:54 · 721 阅读 · 0 评论 -
2021-11-09 泛型、类型通配符、类型擦除、泛型在静态方法和静态类中的问题
泛型泛型的继承原创 2021-11-13 21:26:56 · 1422 阅读 · 0 评论 -
2021-11-07 Java异常机制
本篇章中部分图片来自元动力课堂,若有侵权,烦请告知,即删除。Java异常机制1、零引发的异常例子:输入0,报错:2、解决方案(1)运行前对参数进行校验(2)出现问题后想办法解决(捕获异常)异常的继承体系结构1、Error(毁灭性的异常,没办法修复)2、Exception(可以解决掉)...原创 2021-11-09 15:13:42 · 257 阅读 · 0 评论 -
2021-11-07 Arrays类、System类、StringBuffer 和 StringBuilder类
jdk8的工具类1、Arrays类数组排序数组拷贝(1)先扩容结果:直接拷贝(用本地方法:arraycopy,还有范围拷贝,Arrays中有许多拷贝方法,随用随取即可)2、System类getProperty方法3、StringBuffer 和 StringBuilder类why:append方法insert方法reserse方法为什么StringBuilder可以一直加方法?因为此类的这些方法的返回值就是this.比较一下StringBuffer和S原创 2021-11-07 17:06:30 · 78 阅读 · 0 评论 -
2021-11-07 jdk8的数学类
jdk8的数学类Math类(java.lang)常用的方法:BigDecimal在计算机中用二进制表示十进制的小数就会存在误差,但是用十进制表示二进制就不会有误差。注意:用此类就会没变的很繁琐,因此可以自己实现一个工具类。加:减:使用:Random类(java.util.Random)注:有种子的构造器生成的随机数的特点:只要是每次new的Random对象生成随机数是相同的,但是同一个Random对象生成的随机数是不同的。(也就是每个Random生成随机数的值是一样的)原创 2021-11-07 16:01:43 · 127 阅读 · 0 评论 -
2021-11-07 jdk8的时间类
jdk8的时间类Instant类(在java.time中)1、实例化:(Instant表示的是地球的时间)Instant类中的构造方法时私有的,因此不能直接new一个Instant对象,想要得到一个Instant对象就必须找一下Instant类中的内部方法看有没有返回一个Instant对象的方法:(不止一个,可以自己去API中查)结果:(得到的时格林尼治标准时间(英国)UTC时间:世界统一时间)2、加一个时区:结果:(现在就是本地时间)不能直接返回now,因为now是Instant原创 2021-11-07 15:19:47 · 160 阅读 · 0 评论 -
2021-11-06 Java中的时间类的相关知识
时间API(1)概述1、时间:就是1991年4月8日12点12分40秒,时间会因为时区的不同而不同。2、时区:东八区(据英国格林尼治所跨的时区)3、时间戳:指格林尼治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总毫秒数。时间戳在全世界都是固定的。格林尼治标准时间(英国伦敦郊区的皇家格林尼治天文台的标准时间)的正午是指当太阳横穿格林尼治子午线时(也就是在格林尼治时间)的时间。因为本初子午线被定义为在通过那里的经线。System.curr原创 2021-11-06 17:25:43 · 182 阅读 · 0 评论 -
2021-11-05 类加载、类加载器、双亲委派
类加载静态初始变量本来就有初始值(int类=0),但是前面加上final就必须初始化此变量,否则是有语法错误的。因为final就作用就是避免之后有人去改变此变量的值。注:描述类的内容的信息就是元信息其实空构造器不空,它实际上会给实例对象赋值类加载器双亲委派模型...原创 2021-11-05 20:41:00 · 85 阅读 · 0 评论 -
2021-11-04 main方法
main 方法String[ ] args原创 2021-11-04 20:14:31 · 80 阅读 · 0 评论 -
2021-11-02 传递/引用
引用引用传递:基础类型是值传递:引用类型是地址传递:例子:原创 2021-11-04 19:38:24 · 71 阅读 · 0 评论 -
2021-11-02 箭头函数实例
此接口中只有一个抽象方法:一般调用:箭头函数形式调用:如果想用身高比较:原创 2021-11-02 11:05:28 · 112 阅读 · 0 评论 -
2021-11-02 箭头函数
箭头函数解决:方法不能作为一个独立的个体传入到类一个方法中,只能用类作为载体来使用的问题1、要用箭头函数必须要有一个函数式接口案例一:一般调用:案例二:箭头函数:注:可以写成以上这种简单的格式必须要保证匿名内部类中只有一个抽象方法。以上两种方法本质都是匿名内部类。案例三:相当于:...原创 2021-11-02 10:58:38 · 110 阅读 · 0 评论 -
2021-10-27 匿名内部类
匿名内部类定义:可以使你的代码更加简洁,可以在定义一个类时同时对其进行实例化。它与局部类很相似,不同的是他没有类名,如果一个局部类(内部类)你只需要用一次,那么你就可以使用匿名内部类例子:人类在开party(1)定义一个接口(2)定义类并实现接口...原创 2021-11-02 10:35:48 · 146 阅读 · 0 评论 -
2021-10-26 单例设计模式(懒汉式/饿汉式)
单例设计模式定义:是一种常用的软件设计模式。通过单例模式可以保证系统中,(一个类在堆内存中只有一个实例)应用该模式的类 只有一个实例,即一个类只有一个对象实例。具体思路:别人不能new实例,所以将构造器方法私有化,使其不能再类的外部通过new关键字实例化该类对象。在该类内部产生一个唯一的实例化对象,并且将其封装为private static类型。定义一个静态方法返回这个唯一的对象。实现方式饿汉式写个例子:(1)不能让别人new(2)初始化一个此类对象(3)保证别人能获取到此类原创 2021-10-27 15:20:56 · 106 阅读 · 0 评论 -
2021-10-26 内部类&静态内部类
内部类定义:所谓内部类就是在一个类内部进行其他类结构的嵌套操作,什么情况下有这个需求呢?回顾一下超级链表,Node这个节点类其实主要是给SuperLinked使用,所以可以把这个类定在SuperLinked中就好了。注:内部类是通过外部类的对象调用的!不能直接实例化内部类的对象想要用外部类直接调用内部类可以定义一个内部静态类!思考:静态内部类在什么时候加载?在调用此内部类的时候才会被加载注意:我们常常会用静态内部类,不会使用非静态内部类!...原创 2021-10-26 20:51:26 · 94 阅读 · 0 评论 -
2021-10-26 静态方法、静态变量、静态常量
静态方法和静态变量静态方法和静态变量的调用:1. 类名.静态变量名2. 类名.静态方法名注:1、静态方法没有重写但有重载2、静态方法和静态变量不管建立多少个对象也只能有一个(常量池中的静态方法和变量直接被类调用,与对象无关)3、你定义的静态变量在被编译成字节码时都会被放入静态代码块中赋值。就算你在一个类中定义了多个静态代码块,在被编译成字节码时也只有一个静态代码块。4、为什么会有构造方法?因为构造方法是用来编译你定义的类的一些属性(初始化工作,永久带)的。5、静态方法中不能直接调用原创 2021-10-26 19:26:26 · 123 阅读 · 0 评论 -
2021-10-22 详谈继承和实现
继承和实现注: 为什么要定义抽象类和接口?答:为了做好顶层设计eg:中央政府为我们做好蓝图,做好顶层设计,具体的实现由地方个政府来,只要跟着党的路线走就????了!原创 2021-10-22 16:52:14 · 80 阅读 · 0 评论 -
2021-10-20 向上转型&向下转型
对象转型向上转型子类对象转化位父类,向上转型不需要显示的转化,Father father = son;向上转型会丢失子类独有的特性向下转型父类对象转为子类,向下转型需要强制转化,Son son = (Son)father;向下转型可能会出现错误,需要谨慎最好用if语句判断一下执行的方法中传入的类是不是对应的子类。String类中的equals方法就应用了向下转型。...原创 2021-10-20 17:03:17 · 82 阅读 · 0 评论 -
2021-10-20 重载方法/重写方法的调用
本片中部分图片是截自元动力课程中的,如有侵权请联系本人,马上删除重载方法的调用注:注意重载和重写的区别结果:下面是一个overLoad的一个方法(里面有很多重载的类,jvm会自动选择最合适的方法来执行):重写方法的调用重载和重写重载只是选择了调用方法的版本重写是具体明确了调用谁的方法(继承)重载方法选择方法的过程:静态解析的过程:只是确定了要调用的版本(Animal有很多个版本,eg:dog、cat等),会根据传入的参数和方法名称确定一个合适的方法版本(是一个参数的版本还是原创 2021-10-20 16:45:08 · 366 阅读 · 0 评论 -
2021-10-20 详谈多态(重要)
本篇中部分图片的内容来自元动力课程,如有侵权请联系本人,马上删除宏观了解形成多态的三个条件:有继承有重写有父类引用指向子类的对象(相同的代码呈现出不同的结果)注:对于一个方法的形参类型,我们可以传入任意一个子类的对象。public void feed(Object pet){ pet.toString();}父类中的引用可以指向子类的实例对象Pet dag = new Dog();字节码层面原理调处一个类的字节码的方法分析一个类的字节码原创 2021-10-20 15:40:22 · 82 阅读 · 0 评论 -
2021-10-19 详谈Java中的Object类(hashCode、toString、equal、finallze、clone)
ObjectObject中有哪些需要了解的基本方法?hashCode方法定义返回值是一个9位十进制的数,转化成十六进制是8位,一个十六进制是4位,所有事一个32位的二进制数,刚好是一个内存地址的长度。用途常见的hashCode算法MD5SHA1SHA家族SHA256SHA512注:哈希不是加密算法,是一种散列算法,它不能被解密String类的hashCode方法:toString()方法就是arrayToString()注:String类重写了To原创 2021-10-19 21:43:05 · 98 阅读 · 0 评论 -
2021-10-19 final关键字
首先回顾一下friendly 权限修饰符是Java中默认的修饰符,跨包是不能被访问的。final被final 修饰的类,此类不能被继承被final修饰的变量,变量的值不能被改变。被final修饰的引用,此引用(就是用new声明的实例)的指向不能被改变(就是内存地址),但是被引用指向的实例可以变被final修饰的方法不能被重写...原创 2021-10-19 16:40:29 · 83 阅读 · 0 评论 -
2021-10-17 继承、重写
1、子类继承了父类所有的非私有的属性和方法,可以直接调用。2、子类在构造的时候,一定会构造一个父类,默认调用父类的无参构造器。3、子类如果希望指定去调用父类的某个构造器,则显示的调用一下:super(参数列表)4、super和this当做构造器使用时,必须放在构造器第一行,所以只能二选一。5、Java所有类都是Object类的子类,Object是所有类的基类。6、子类最多只能继承一个父类(指直接继承),Java中是单继承机制,我们可以使用连续继承来实现。...原创 2021-10-19 16:27:26 · 76 阅读 · 0 评论 -
2021-10-08 超级链表
链表在内存中的存储形式:如下图原创 2021-10-11 20:15:43 · 119 阅读 · 0 评论 -
2021-10-05 String类
常用方法:1、字符串的“==”方法栈: 执行代码用,栈中给每个方法分配独立的空间(栈帧),栈帧中有分配了一片空间叫槽(槽中放成员变量是s1)堆: 存放公共属性(只要一new就会在堆内存中分配空间)常量池(元空间): 其中分了一片空间放了abc输出:true输出:false...原创 2021-10-05 19:33:24 · 87 阅读 · 0 评论 -
2021.10.05 this关键字
先看this在内存中的位置注:如果没有实例化一个类的话(即对象),那么this就没有任何意义。this调用构造方法注:在方法里面不能调用构造this当作构造器只能放在第一行原创 2021-10-05 11:53:21 · 88 阅读 · 0 评论 -
2021.10.04 可变参数
可变参数方法实例:调用:可变参数实质是数组:实例:调用:注:一个方法的形参列表最多只能出现一个可变参。可变参可以与普通参数放在一起,但是可变参数必须放在最后,原创 2021-10-04 20:51:44 · 80 阅读 · 0 评论 -
2021/10/04 重载
重载在Java中允许同一个类中,多个同名方法的存在,但是要求【形参列表】不同,这个和返回值无关!!!如下图:构成重载的三个要素:方法名必须一致参数不一致,有两层含义:第一:参数的数量不同;第二:参数的类型不同(参数的名字一不一样没关系)。返回值无要求。...原创 2021-10-04 20:43:07 · 124 阅读 · 0 评论