02 2020 档案
摘要:三者的异同 String:不可变,底层使用char[存储] StringBuffer:可变,jdk1.0就有线程安全,效率低 StringBuilder:可变,jdk5.0,线程不安全,效率高 比较三者的效率: String<StringBuffer<StringBulider package st
阅读全文
摘要:String与包装类的转换 //基本数据类型,包装类 >String 使用方式:被转化数据+""变成字符串类型,使用被转化的数据类型对应的valueOf() //String >基本数据类型,包装类方法 使用方式:要转换为的包装类对应的parseInt()方法 @Test public void t
阅读全文
摘要:wait():将线程进入阻塞状态,需要等待唤醒,此时释放cpu资源 notify():程序一旦执行到此方法,就会唤醒一个被wait的线程 notifyAll():程序一旦执行到此方法,就会唤醒被wait的线程 注意:这三个方法只能用在同步方法或同步代码块中 这三个方法的调用者必须是同步监视器,否则会
阅读全文
摘要:死锁:不同线程,分别占用对方需要的同步资源不放弃,都在等待对方放弃自己需要的同步资源,就形成了死锁 同步锁:使用Lock 比较Lock与synchronized: 相同点:都解决了线程安全问题 不同点:synchronized需要制定同步监视器,且保证同步监视器的唯一性,且不管是同步代码块还是同步方
阅读全文
摘要:方式一:同步代码块 synchroized(同步监视器的对象){需要被同步的代码} package threadtest; //使用同步代码块实现Runable接口的线程 public class Ruanble { public static void main(String[] args) {
阅读全文
摘要:1. 程序:为完成特定任务而编写的一段指令的集合 2. 进程:是程序的一次执行过程,或是正在运行的一个程序.是一个动态的过程:它有自身的产生,存在和消亡的过程 生 命周期, 3. 线程:进程可以进一步细化为线程,是一个程序内部的一条执行路径, 一个进程可以支持并行多个线程,此时称之为多线程的 3.1
阅读全文
摘要:枚举类:类的对象只有有限个,确定的. 当定义一组常量是,建议使用枚举类 定义枚举类: 方式一:自定义枚举类 单例模式视作只有一个的枚举类 public class Test { public static void main(String[] args) { System.out.println(S
阅读全文
摘要:异常:在Java当中,将程序执行中发生的不正常情况称之为异常 在执行过程当中发生的异常分为两类 Error:Java虚拟机无法解决的严重问题 Exception:其他因编程错误或偶然的外在因素0导致的一般性问题,可以使用针对性的代码处理 常见的异常有哪些: 运行时异常 ArrayIndexOutOf
阅读全文
摘要:内部类的分类: 成员内部类 (直接声明在类的内部,与属性,方法并列) vs 局部内部类(方法内,代码块内) 成员内部类:>>>静态的成员内部类 vs 非静态的成员内部类 内部类的了解: 一方面>>>,作为外部类的成员使用 >可以使用4中权限符修饰 >可以使用static修饰 >可以调用外部类的结构:
阅读全文
摘要:共同点: 都可以定义抽象方法,都要重写实现抽象方法 都不能实例化,都必须提供子类(或实现类),需要重写所有抽象方法后,才可以实例化 不同点: 声明方式不同 抽象类:一定有构造器;接口:一定没有构造器 类的单继承性与接口的多继承性 类和接口是实现关系,而且多实现 接口中属性只能是常量.关于方法:在jd
阅读全文
摘要:jdk8中可以定义静态方法(public static)和默认方法(public default),public 可以省略 调用接口中的静态方法时:只能通过接口本身来调用,不能被该接口的实现类来调 调用接口默认方法时:可以由接口的实现类调用 实现类可以重写接口中的默认方法,重写后,再调用时,就是调用
阅读全文
摘要:饿汉式:一上来就把对象创建好了 class Bank{ //私有化当前类的构造器 private Bank(){} //在类的的内部创建对象 private static Bank bank=new Bank(); //通过公共的方法,获取Bank实例 public static Bnak getI
阅读全文
摘要:基本数据类型与包装类的转化: 基本数据类型转换为包装类称之为自动装箱 包装类转换为基本数据类型称之为自动拆箱 /**通过字符串参数*/Float a=new Float("32.1F");/**通过构造器*/ Integer a=Integer (10); /**自动装箱*/int num=10;I
阅读全文
摘要:1.equals的使用: 引用数据类型的比较:通常情况下比较的是引用数据类型下的栈中的地址,但当你重写了equals方法后就不一定了 User user1=new User("tom",12); User user2=new User("tom",12); //结果为false System.out
阅读全文
摘要:this: 1..修饰属性,方法,构造器 2..我们在构造器或方法中,使用 this.属性 或 this.方法 的方式,显示调用的当前对象(或当前正在创建的对象)的属性或方法.只是大部分情况下我们选择省略this. 如果方法或构造器中传入的形参与属性同名,此时,我们必须使用显式的使用 this.变量
阅读全文
摘要://创建一个Person类 class Person{ String name; int age; boolean isMale; } //创建一个测试类PersonTest class PersonTest{ main(){ //new 一个Person类对象:p1 //,即在栈中创建索引值0x1
阅读全文
摘要:/* * Arrays数组工具的基本使用 */import java.util.Arrays;public class Day02_03 { public static void main(String[] args) { int [] num=new int [] {16,23,65,28,19,
阅读全文
摘要:main{ //初始化一个数组 int [] num=new int [] {16,23,65,28,19,78,69}; System.out.println("该数组的长度: "+num.length); System.out.println("***********"); //冒泡排序该数组:
阅读全文
摘要:package study;public class Day02_01 { public static void main(String []args){ int[][] yHui=new int[10][]; for(int i=0; i<yHui.length;i++){ yHui[i]=new
阅读全文
摘要:数组:1.数组是引用数据类型 2.数组的元素是基本数据类型也可以是引用数据类型 3.数组元素在内存中是连续存储的 1.数组元素的调用 //静态初始化 int []nums =new int [] {1,2,3,4,5} //动态初始化 String[ ] foods= new String[5] /
阅读全文