自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 List常用方法

package com.atguigu.java;import org.junit.Test;import java.util.ArrayList;import java.util.Arrays;import java.util.Iterator;import java.util.List;/** * /----collection接口:单列集合,用来存储一个一个的对象 * /----List接口:存储有序的、可重复的数据。-->“动态”数组,替换原有的数组 * /----Ar

2021-03-15 10:19:15 109

原创 Iterator遍历Collection对象 、foreach遍历Collection对象

package com.atguigu.java;import org.junit.Test;import java.util.ArrayList;import java.util.Collection;import java.util.Iterator;/** * 1.集合元素的遍历操作,使用迭代器Iterator接口内部的方法:hasNext()和 next() * 2.集合对象每次调用iterator()方法都得到一个全新的迭代器对象,默认游标都在集合的第一个元素之前。 * 3.

2021-03-14 11:26:27 212

原创 Collection接口的常用方法

package com.atguigu.java;import org.junit.Test;import java.util.*;/** * @author WHR * @create 2021-03-13-11:38 * 一、集合框架的概述 * 1.集合、数组都是对多个数据进行存储操作的结构,简称Java容器。 * 说明:此时的存储,主要指的是内存层面的存储,不涉及到持久化的存储(.txt,.jpg,.avi,数据库中) * <p> * 2.1数组在存储多个数据方面

2021-03-13 16:13:21 276

原创 枚举类

package com.atguigu.java;import org.junit.Test;import java.util.Arrays;/** * 一、如何定义枚举类 * JDK5.0之前,自定义 * JDK5.0之后,可以使用enum关键字定义枚举类,默认继承于java.lang.Enum类 * * 二、枚举类常用方法 * values()方法:返回枚举类型的对象数组。该方法可以很方便地遍历所有的枚举值。 * valueOf(String str):可以把一个字符串转为对应

2021-03-12 17:28:50 116

原创 Comparator : 定制排序

/** * Comparator : 定制排序 * 1.当元素的类型没有实现java.lang.Comparable接口而又不方便修改代码 * 或Comparable接口的方式不适合当前类 * 2.重写compare(Obj o1, Obj o2) * 如果返回正整数,则表示o1>o2;返回0,表示相等;负数,表示小于 */ @Test public void test3() { String[] ...

2021-03-12 11:11:23 121

原创 自定义类实现Comparable接口的自然排序

package com.atguigu.java;import org.junit.Test;import java.util.Arrays;public class ComparableTest { /** * Comparable接口使用举例: * 1.String、包装类等实现了Comparable接口,重写了compareTo()方法 * 2.重写compareTo()的规则: * 如果当前对象大于形参对象,返回正整数,若小于,则返回负数,

2021-03-12 10:35:24 315

原创 Instant DateTimeFormatter的使用

@Test public void InstantTest(){ Instant instant = Instant.now(); System.out.println(instant);//本初子午线时间 //添加时间的偏移量 OffsetDateTime offsetDateTime = instant.atOffset(ZoneOffset.ofHours(8)); System.out.println(of.

2021-03-12 09:50:14 326

原创 LocalDate LocalTime LocalDateTime的使用

package com.atguigu.java;import org.junit.Test;import java.time.LocalDate;import java.time.LocalDateTime;import java.time.LocalTime;import java.util.Date;/** * @author WHR * @create 2021-03-11-19:51 */public class JDK8DateTimeTest { @Test

2021-03-11 20:55:03 107

原创 Calendar

package com.atguigu.java;import org.junit.Test;import java.util.Calendar;import java.util.Date;public class CalendarTest { //实例化 //方式一: 创建其子类GregorianCalendar的对象 //方式二: 调用其静态方法getInstance(); @Test public void test1() {

2021-03-11 19:33:14 71

原创 StringBuffer StringBuilder常用方法

package com.atguigu.java;import org.junit.Test;/** * String、StringBuffer、StringBuilder三者的异同? * String:不可变的字符序列;底层使用char[]存储 * StringBuffer:可变的字符序列;线程安全的,效率低;底层使用char[]存储 * StringBuilder:可变的字符序列;jdk5.0新增,线程不安全,效率高;底层使用char[]存储 * <p> * 源码分析:

2021-03-09 08:38:34 135

原创 String类常用方法

package com.atguigu.java;import org.junit.Test;/** * int length():返回字符串的长度: return value.length * char charAt(int index): 返回某索引处的字符return value[index] * boolean isEmpty():判断是否是空字符串:return value.length == 0 * String toLowerCase():使用默认语言环境,将 String 中

2021-03-02 12:15:30 114

原创 String类、String类拼接对比

import org.junit.Test;/** * @author WHR * @create 2021-02-27-9:27 * * string:字符串,使用一对""引起来表示。 * 1.String声明为finaL的,不可被继承 * 2.String实现了Serializable接口:表示字符串是支持序列化的 * 实现了Comparable接口:表示String可以比较大小 * 3.String内部定义了final char[ ]value用于存储字符串数据

2021-03-02 11:36:18 265

原创 多线程——callable接口、线程池

package com.atguigu.java;import java.util.concurrent.Callable;import java.util.concurrent.ExecutionException;import java.util.concurrent.FutureTask;public class ThreadNew { public static void main(String[] args) { //3.创建Callable接口实现类对象

2021-02-26 16:52:33 91

原创 多线程——LOCK(锁)、线程通信

synchronized 和 Lock的异同?相同:两者均可解决线程安全问题异同:synchronized机制在执行完相应的同步代码块以后,自动的释放同步监视器;Lock需要手动的启动同步(lock()), 结束同步时也需要手动关闭(unlock())public class WindowTest4 { public static void main(String[] args) { Ticket ticket = new Ticket(); Thread.

2021-02-25 19:07:34 158

原创 多线程——死锁问题

案例实现:public class DeadLockTest implements Runnable { A a = new A(); B b = new B(); public static void main(String[] args) { DeadLockTest test = new DeadLockTest(); //执行run()方法 new Thread(test).start(); //执行in

2021-02-18 16:20:04 102

原创 多线程——线程的安全问题

在java中,一般通过同步机制,来解决线程的安全问题方式一:同步代码块synchronized(同步监视器){需要被同步的代码}说明:操作共享数据的代码,即为需要同步的代码共享数据:多个线程共同操作的变量。如:ticket就是共享数据同步监视器,俗称:锁。任何一个类的对象都可以充当锁...

2021-02-18 15:14:55 76

原创 多线程——创建多线程的方法

方式一:继承于Thread类1.创建一个继承与Thread的类的子类2.重写Thread类的run()–>将此线程执行的操作写在run()中3.创建Thread的子类对象4.通过此对象调用start()class MyThread extends Thread { @Override public void run() { for (int i = 0; i < 100; i++) { if(i % 2 == 0){ .

2021-02-15 20:57:52 160

原创 多线程——测试Thread类中的常用方法、线程的优先级、线程的分类(守护线程、用户线程)

测试Thread类中的常用方法1.start():启动当前线程;调用当前线程的run()2.run():通常需要重写Thread类中的此方法,将创建的线程要执行的操作声明在此方法中3.currentThread():static;返回执行当前代码的线程4.getName():获取当前线程的名字5.setName():设置当前线程的名字6.yield():释放当前CPU的执行权7.join():在线程A中调用B的join(),此时线程A进入阻塞状态,直到线程B完全执行完以后,线程A才结束阻..

2021-02-15 20:49:07 185

原创 异常

异常体系结构java. lang.Throwablejava.lang.Error:一般不编写针对性的代码进行处理。java.lang.Exception:可以进行异常的处理编译时异常(checked)IOExceptionFileNotFoundExceptionlClassNotFoundException运行时异常(unchecked)NullPointerExceptionArrayIndexOutofBoundsExceptionClassCastExcep.

2021-01-15 11:32:22 88

原创 接口

接口使用interface来定义Java中,接口和类是并列的两个结构如何定义接口:定义接口中的成员JDK7及以前: 只能定义全局常量和抽象方法全局常量: public static final的抽象方法: public abstract的JDK8: 除了定义全局常量和抽象方法之外,还可以定义静态方法、默认方法(暂略)接口中不能定义构造器!意味着接口不可以实例化Java开发中, 接口通过让类去实现( implements )的方式来使用。如果实现类覆盖了接口中的所有抽象方法,则此.

2021-01-11 17:36:05 87

原创 abstract关键字的使用

abstract:抽象的abstract可以用来修饰的结构:类、方法abstract修饰类:抽象类此类不能实例化抽象类中一定有构造器,便于子类实例化时调用(涉及:子类对象实例化的全过程)>开发中,都会提供抽象类的子类,让子类对象实例化,完成相关的操作abstract修饰方法:抽象方法抽象方法只有方法的声明,没有方法体包含抽象方法的类,一定是一个抽象类。反之,抽象类中可以没有抽象方法。子类重写了父类中的所有的抽象方法后方可实例化若子类没有重写父类中的所有的抽象方法..

2021-01-10 15:29:38 105

原创 final关键字

final可以用来修饰的结构:类、方法、变量final 用来修饰一个类:此类不能被其他类所继承。比如: String类、System类、StringBuffer类final 用来修饰方法:表明此方法不可以被重写比如:Object类中getClass();...

2021-01-09 22:59:43 58

原创 类的成员:代码块(或初始化块)

代码块的作用:用来初始化类、对象代码块如果有修饰的话,只能使用static.分类:静态代码块VS非静态代码块静态代码块内部可以有输出语句随着类的加载而执行,而且只执行一次作用:初始化类的信息如果一个类中定义了多个静态代码块,则按照声明先后顺序执行静态代码块的执行优先于非静态代码块静态代码块内只能调用静态的属性、静态的方法,不能调用非静态的结构非静态代码块内部可以有输出语句随着对象的创建而执行每创建一个对象, 就执行一-次非静态代码块作用:可以在创建对象时..

2021-01-08 22:22:26 84

原创 单例设计模式之饿汉式、懒汉式

所谓类的单例设计模式,就是采取一定的方法保证在整个的软件系统中,对某个类只能存在一个对象实例。优点:由于单例模式只生成一个实例,减少了系统性能开销,当一个对象的产生需要比较多的资源时,如读取配置、产生其他依赖对象时,则可以通过在应用启动时直接产生一个单例对象,然后永久驻留内存的方式来解决。如何实现?饿汉式vs 懒汉式public class Singleton { public static void main(String[] args) { Bank bank1 = ..

2021-01-08 16:50:23 100

原创 static关键字的使用

static:静态的static可以用来修饰:属性、方法、代码块、内部类使用static修饰属性:静态变量(或类变量)属性,按是否使用static修饰,又分为:静态属性vs非静态属性(实例变量)实例变量:我们创建了类的多个对象,每个对象都独立的拥有一套类中的非静态属性。当修改其中一个对象中的非静态属性时,不会导致其他对象中同样的属性值的修改。静态变量:我们创建了类的多个对象,多个对象共享同一个静态变量。当通过某一个对象修改静态变量时,会导致其他对象调用此静态变量时,是修改过了的。sta.

2021-01-08 15:02:10 80

原创 包装类

基本数据类型包装类byteByteshortShortintIntegerlongLongfloatFloatdoubleDoublebooleanBooleancharCharacter基本数据类型 —> 包装类:调用包装类的构造器 Integer in1 = new Integer("123");//123 Integer in2 = new Integer("123abc");//java.lang.Nu...

2021-01-05 16:28:40 74

原创 Object中toString()的使用

当输出一个对象的引用时,实际上就是调用当前对象的toString()Object中toString()的定义: public String toString() { return getClass().getName() + "@" + Integer.toHexString(hashCode()); }String/Date/File/包装类等都重写了Object类中的toString()方法,当调用对象的toString()方法时,返回“实体内容”信息 Syste.

2021-01-03 21:06:28 217 1

原创 “==” 和 equals() 的区别

==:运算符可以使用在基本数据类型变量和引用数据类型变量中如果比较的是基本数据类型变量:比较两个变量保存的数据是否相等(不一定类型要相同)。如果比较的是引用数据类型变量:比较两个对象的地址值是否相同。即两个引用是否指向同一个对象实体。equals():方法equals()是一个方法,而非运算符只能适用于引用数据类型object类中equals()的定义:public boolean equals(object obi) {return (this == obj);}说明:O

2021-01-02 19:27:47 80

原创 多态性

理解多态性:可以理解为一个事物的多种形态public class Person {}public class Man extends Person{}Person p1 = new Man();何为多态性:对象的多态性:父类的引用指向子类的对象(或子类的对象赋给父类的引用)多态的使用:当调用子父类同名同参数的方法时,实际执行的是子类重写父类的方法------虚拟方法调用有了对象的多态性以后,我们在编译期,只能调用父类中声明的方法,但在执行期,实际执行的是子类重写的方法.

2020-12-28 20:10:01 99

原创 super关键字

super关键字的使用super理解为: 父类的super可以用来调用: 属性、方法、构造器super的使用我们可以在子类的方法或构造器中,通过使用"super.属性"或"super.方法"的方式,显式的调用父类中声明的属性或方法。但是,通常情况下,我们习惯省略"super . "特殊情况 : 当子类和父类中定义了同名的属性/方法时,我们要想在子类中调用父类中声明的属性/方法,则必须显式的使用"super.属性/方法"的方式,表明调用的是父类中声明的属性(被重写的方法)。...

2020-12-27 21:04:26 89

原创 四种访问权限修饰符

修饰符类内部同一个包不同包的子类同一个工程privateYes(缺省)YesYesprotectedYesYesYespublicYesYesYesYes

2020-12-27 15:45:24 102

原创 方法的重写与重载

方法的重写:1.重写:子类继承父类之后,可以对父类同名同参数的方法,进行覆盖操作2.应用:重写以后,当创建子类对象时,通过子类对象调用子父类中同名同参数的方法时,实际调用的是子类重写父类的方法...

2020-12-27 15:13:33 154

空空如也

空空如也

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

TA关注的人

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