自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 集合框架(六)工具类Collections

工具类CollectionsCollections.sort()的使用方式一:使用 sort(List list) 方法定义排序时,被排序的类必须要实现接口Comparable接口重写compareTo方法。public int compareTo(Object o) { //this与传入的o比较this大于o则返回1,反之则为-1, //若二者相等但此处省略,以上为升序方法,若降序则相反 return ((this.getScore() - ((Student) o).getScore(

2021-09-11 09:21:17 73

原创 集合框架(五)Map

Map(I)特点Map集合是双列集合,以key-value的形式存储实现类HashMap(C)底层实现:哈希表(散列表)底层数据结构JDK1.7 数组+链表(添加到链表头部—头插法,添加时会将链表的第一个元素往后移一位)JDK1.8 数组+链表(添加到链表的尾部—尾查法)|红黑树特点:HashMap是无序的,通过key的hashCode进行排列线程不安全扩容是扩容大约原容量的一倍key不可以重复,value可以有重复值,key可以为空,value

2021-09-11 09:19:50 88

原创 集合框架(四)Queue

Queue(I)队列接口特点先进先出常用特有方法offer() 入队queue.offer("one");queue.offer("two");queue.offer("three");System.out.println(queue);// [one, two, three]poll() 出队(移除队列的头)System.out.println(queue);queue.poll();System.out.println(queue);// [one,

2021-09-10 20:52:11 82

原创 集合框架(三)Set

Set(I)与Collection的API完全相同特点Set集合截取Map(映射表)物理空间不连续,添加没有顺序,但是不是随机不允许为重复值使用equals判断元素是否为空实现类HashSet底层实现散列表特点(无序且唯一)插入是无序的,无序不是随机,按照hashCode地址值插入不允许重复值如果set存储的是自定义类型的对象,必须重写equals()和hashCode(),否则无法实现没有重复。插入原理定位,通过哈希码(通过hash

2021-09-10 20:49:07 549

原创 集合框架(二)List(I)

集合框架(二)List(I)List(I)继承了Collection接口特点:有顺序的接口,所以是有序列表,所以可以用index(下标)定位可以有重复值允许有NULL值特有方法subList() 获取当前列表的部分视图⚠️注意:共用同一个内存空间所以在新的集合修改添加元素原本元素也会被修改。System.out.println("部分的列表视图" + childrenList);childrenList.add("y");System.out.println("部

2021-07-31 11:43:37 410

原创 集合框架(一)Collection(I)

集合框架(一)Collection(I)数组与集合的区别:数组长度不可变,集合长度可变数组可以存储基本数据类型和引用数据类型,集合只能存储引用数据类型数组只能存储统一类型,集合可以存储不同类型Collection(I)添加元素添加一个元素collection.add("1");添加另一个集合的元素// 把B集合的元素全部添加到A中A.addAll(B);System.out.println(A);移出集合中所有元素collection.clear();

2021-07-31 11:39:47 65

原创 包装类的简单介绍

包装类int—Integer boolean—Boolean byte—Bytechar—Character double—DoubleInteger也存在常量池,通过常量赋值的方式(Integer i = 100;)并且在(-128~127)之间都存在常量池中,其他包装类没有常量池...

2021-07-27 19:09:24 48

原创 String、StringBuffer、StringBuilder

字符串String⚠️注意:字符串不变字符串在创建后就不能修改,因为字符串不变所以可以共享,即(str1 = “abc” 和 str2 = “abc” 在内存中是共用同一个"abc"对象),String的底层通过字符数组实现常量池:常量池中放的都是常量字符串比较⚠️注意:str1 == str2 是比较这两个equals()str.equals(num);equalsIgnoreCase()str.equalsIgnoreCase(num);区别:equal

2021-07-27 19:05:55 58

原创 时间处理类

时间处理类Date构造方法无参构造方法:当前系统时间有参构造方法:参数为long类型,这个long类型表示的时间方法getTime:返回时间对象的long类型表示setTime:参数为long类型,给这个Data对象的时间修改为这个long类型表示的时间简单实用// 计算下一天// 尽量只做7天内的计算Date date = new Date();long nextDay = date.getTime() + 24L * 60 * 60 * 1000;dat

2021-07-27 19:03:45 66

原创 常用类----Math、Random、Scanner

常用类Math随机数Math.random()// 随机数的使用public class testRandom { public static void main(String[] args) { // Math.random() [0,1) // Math.random() * 10 [0,10) // Math.random() * 10 + 1 [1,11) // (int)(Math.random() * 10

2021-07-27 19:00:56 61

原创 Object类及其主要方法

Object所有类的父类,所有类默认继承Object只有无参构造方法方法getClass()不常用作用:获取当前对象的字节码对象类加载的触发条件实例化对象调用静态方法或静态变量使用子类,加载父类Class. forName(“类的全类名”)对象(或类名).getClass()clone():一般不使用作用:复制(克隆)对象前提:必须重写clone方法,并且该类要实现Cloneable接口(空实现,标记这个类是可克隆)克隆方式:深克隆(clone(

2021-07-27 18:56:44 42

原创 内部类的简要概括

内部类一个类中存在另一个类分类:成员内部类(非静态内部类)public class Outer01 { private int a = 3; public class Inner { }}特点:内部类中可以随意调用外部类的成员变量和成员方法外部类中使用内部类成员时,需要创建内部类对象无关类中使用成员内部类间接调用:在外部类中的方法创建内部类对象Outer01类public class Outer01 { private

2021-07-17 08:54:34 60

原创 关键字final

关键字 finalfinal修饰局部变量也称为常量不可修改,不可变final修饰成员变量被final修饰词修饰的成员变量必须初始化可以在声明的同时初始化可以在构造块中初始化可以在构造方法中初始化(注意:所有构造方法都要初始化)final修饰引用变量地址值不可变(对象不变)引用对象的内容可变final修饰方法被final修饰的方法不能被重写可以重载final修饰类被final修饰的类不能被继承常量// 常量final int c = 1;静态

2021-07-15 20:21:30 41

原创 关键字Static

关键字Staticstatic可以修饰成员变量 / 方法 / 代码块 / 内部类Static修饰成员变量静态成员变量属于类类名.变量名被这个类所有的对象共享静态成员变量只加载一次不要在构造方法中初始化普通成员变量属于对象对象名.变量名一个对象一个变量public class StaticVariate { int a; //在类加载的时候,会将静态内容也加载到方法区的静态域中 //静态的内容先于对象存在

2021-07-15 20:19:17 38

原创 多态的简要概括

多态一种事务,多种形态,称为多态前提:继承:必须存在继承关系向上转型:将子类型的引用赋值给父类型对象重写:子类重写父类方法接口多态InterfaceA interfaceA = new InterfaceAImpl();// 自动类型转换InterfaceAImpl interfaceA1 = (InterfaceAImpl)interfaceA;// 向下转型(强转)类的多态// 父类型引用 指向 子类型对象Object interfaceA = new

2021-07-15 20:12:05 81

原创 接口的简单总结

接口 interface接口不是类是一种引用数据类型,没有父子关系所以不可以使用protected权限修饰符可以存放的内容所有版本:抽象方法和静态常量// 都是抽象方法,可以省略public abstract void a1();abstract void a2();public void a3();// 推荐写法void a4();// 静态常量// public final static int A = 0;// 可以省略前面的修饰符// 推荐写法int A =

2021-07-15 20:08:17 63

原创 封装的简要概括

封装权限修饰符/访问修饰符public:公开的范围:所有类protected:保护的范围:同包下的所有类,以及父子类关系(可在不同包下)default:默认的(不写权限修饰符就是由default修饰)范围;同包下的所有类(包里的包也不行)private:私有的范围:只在本类public > protected > default > private属性是提供一对的get和set方法封装目的:为了保证成员变量的安全性,把成员变量的访

2021-07-15 20:05:47 43

原创 抽象类的简要概括

抽象类 abstract目的:因为一般继承类时都会重写方法,所以方法的方法体显得多余了所以为了去掉方法的方法体,引入了抽象类(个人看法)抽象类使用abstract修饰的类就是抽象类抽象类可以没有抽象方法抽象类不能被实例化,只能通过子类实现如果子类不实现父类的方法,只能将自己变为抽象类抽象类可以有构造方法(为了给子类使用,因为子类的构造方法需要调用父类的构造方法)抽象方法使用 abstract修饰的方法没有方法体小例子// 员工public abstract class

2021-07-13 18:38:01 52

原创 继承的笔记

继承:extends子类(衍生类、扩展类)、父类(基类、超类)作用:提高代码复用性,是多态的前提子类继承父类,就可以直接访问父类所有的非私有成员变量和方法一个类只有一个父类(单继承),父类可以有多个子类子类可以定义属于自己的成员变量和成员方法创建子类对象之前会先创建父类对象,子类加载前会先加载父类在内存中,子类对象中会有一个空间存放父类对象想要调用父类的成员变量和成员方法可以使用super关键词,super.属性、super.方法、super() 父类无参构造方法,

2021-07-13 18:35:39 50

原创 设计模式(二)单例模式:饿汉式

饿汉式酒店类(单例类)// 酒店类(单例模式:饿汉式)public class Hotel { // 酒店单例 // 饿汉式 private static Hotel hotel = new Hotel(); // 房间 private Room[][] rooms; // 公开的获取这个单例的get()方法 public static Hotel getHotel() { return hotel; } //

2021-07-13 12:28:34 63

原创 设计模式(一)单例模式:懒汉式

单例模式这种类型的设计模式属于创建型模式这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。目的:避免一个全局使用的对象不停的创建和注销核心:私有构造方法原理:因为构造方法是私有的所以在这个类之外不能通过new创建这个类的实例,这个类的实例只能在类的内部调用类私有的构造方法才能创建,只要保证类的内部只创建一个实例就可以实现。(个人理解)懒汉式当需要使用这个单例对象时才创建这个对象

2021-07-13 12:25:15 239

原创 方法的重载

方法的重载定义:在一个类中,方法名一样,方法参数不同的几个方法,称之为方法重载特点:在同一个类中参数个数不同参数类型不同参数顺序不同与参数名无关与返回类型无关...

2021-07-12 19:00:33 56

原创 引用类型数组以及二维数组

引用类型数组// 推荐这种方式声明和创建引用类型数组,其他方式略Person[] people = new Person[3];people[0] = new Person();people[0].age = 13;people[0].name = "小明";引用类型数组的内存二维数组// 声明int[][] a = new int[3][];int[][] d = new int[3][4];// 赋值a[0] = new int[4];// 再给赋值前要先创建数组a[1]

2021-07-12 18:58:06 92

原创 Math与Scanner类的常用方法

1、Math随机数Math.random()// 随机数的使用public class testRandom { public static void main(String[] args) { // Math.random() [0,1) // Math.random() * 10 [0,10) // Math.random() * 10 + 1 [1,11) // (int)(Math.random() * 10) +

2021-07-08 22:02:51 134

原创 数组的扩容与复制以及排序

数组的扩容数组的长度不可变,因此要进行数组扩容就需要创建一个新的数组,新数组长度比旧数组大一个值(可以是1也可以是旧数组的1.5倍也可以是旧数组的2倍),然后将有数组中的值赋给新数组。/* * 把数组的最大值,添加到数组的末尾(数组的扩容) */public class Demo02 { public static void main(String[] args) { int[] array = new int[10]; // 给数组赋值 f

2021-07-08 21:54:49 152

原创 数组的基本使用以及内存分配

数组//声明int array1[];int[] array2;//创建array1 = new int[5];array2 = new int[5];//声明和创建结合int[] array3 = new int[5];int array4[] = new int[5];//声明、创建和赋值结合int[] array5 = {1,2,3};int[] array6 = new int[]{1,2,3};//赋值array4[0] = 1;array4[1] = 2;//使用

2021-07-07 18:05:13 124

原创 流程控制注意点

流程控制注意点switchswitch后面跟的是要判断的变量判断的变量必须是要可以自动转换为int值,如byte short char但在JDK1.7中的判断变量可以使用Stringbreakpublic static void main(String[] args) { for (int i = 0; i <= 100; i++) { System.out.println(i); while (i == 30) {

2021-07-07 18:02:06 58

原创 java的基本数据类型

1、JDK、JRE与JVMJDK、JRE、JVMJDK:Java Development Kit------ Java开发者工具JRE:Java Runtime Environment------- Java运行时环境JVM:Java Virtual Machine------- Java虚拟机java跨平台原理JVM:充当“翻译官”将字节码文件翻译为当前操作系统可以执行的文件格式将java文件即源文件编译成class文件即字节码文件使用javac命令,执行class文件即字节码文件使用

2021-07-06 18:23:15 57

空空如也

空空如也

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

TA关注的人

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