![](https://img-blog.csdnimg.cn/913906e776e24adbaf13025f68ddf458.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
JAVA 基础
文章平均质量分 56
JAVA基础
没有人会真的躺平
忙碌不等于努力
展开
-
JAVA 8 Optional类
Optional类class Girlpackage com.atguigu.java4;/** * */public class Girl { private String name; @Override public String toString() { return "Girl{" + "name='" + name + '\'' + '}'; } publi原创 2022-03-04 21:13:29 · 2119 阅读 · 0 评论 -
JAVA 8 Stream API
Stream APIStream的实例化package com.atguigu.java3;import com.atguigu.java2.Employee;import com.atguigu.java2.EmployeeData;import org.junit.Test;import java.util.ArrayList;import java.util.Arrays;import java.util.List;import java.util.stream.IntSt原创 2022-03-04 19:05:49 · 2285 阅读 · 0 评论 -
Java8之Predicate接口
Predicate接口的test()部分源代码@FunctionalInterfacepublic interface Predicate<T> { /** * 具体过滤操作 需要被子类实现. * 用来处理参数t是否满足要求 */ boolean test(T t);test方法的作用是:1 . 评估参数里面的表达式(说白了就是验证传进来的参数符不符合规则,后面有例子)2 . 它的返回值是一个boolean类型(这点需要注意一下)。转载 2022-03-04 16:50:44 · 426 阅读 · 0 评论 -
ArrayList.forEach(System.out::println)
运行以下代码: public static void main(String[] args) { List<Object> list = new ArrayList<>(); for (int i = 0; i < 10; i++) { list.add(i); } list.forEach(Sys...转载 2022-03-04 12:26:28 · 311 阅读 · 0 评论 -
JAVA 8 方法引用和构造器引用
方法引用方法引用test中要用到的 Employee类package com.atguigu.java2;/** * 方法引用test中要用到的 Employee类 */public class Employee { private int id; private String name; private int age; private double salary; public int getId() { return id; } public void setI原创 2022-03-03 21:51:52 · 404 阅读 · 0 评论 -
JAVA 8 Lambda表达式
Lambda表达式Lambda表达式语法的使用package com.atguigu.java1;import org.junit.Test;import java.util.ArrayList;import java.util.Comparator;import java.util.function.Consumer;/** * Lambda表达式的使用(接口有一定的要求,要求接口仅能有一个抽象方法) * * 1.举例: (o1,o2) -> Integer.compare原创 2022-03-03 18:48:56 · 208 阅读 · 0 评论 -
JAVA 反射 3 动态代理
代理模式代理模式静态代理举例package com.atguigu.java;/** * 静态代理举例 * * 特点:代理类和被代理类在编译期间,就确定下来了。 * */interface ClothFactory{//衣服工厂 void produceCloth();}//代理类class ProxyClothFactory implements ClothFactory{ private ClothFactory factory;//用被代理类对象原创 2022-03-02 23:05:13 · 271 阅读 · 0 评论 -
JAVA 反射 2
造一个结构丰富的Person类,方便后边问题分析接口 interface MyInterfacepackage com.atguigu.java1;/** * Person类继承用到的接口 */public interface MyInterface { void info();}Creature类是Person类的父类package com.atguigu.java1;import java.io.Serializable;/** * Creature类是Pers原创 2022-03-02 19:01:41 · 57 阅读 · 0 评论 -
JAVA 反射 1
反射的概述反射之前,类的实例化等操作原创 2022-03-01 17:07:14 · 375 阅读 · 1 评论 -
JAVA 网络编程
IP的理解与InetAddress类的实例化InetAddress类代表一个ip地址InetAddressTest.javapackage com.atguigu.java1;import java.net.InetAddress;import java.net.UnknownHostException;/** * 一、网络编程中有两个主要的问题: * 1.如何准确地定位网络上一台或多台主机;定位主机上的特定的应用 * 2.找到主机后如何可靠高效地进行数据传输 * * 二、网络编原创 2022-02-28 00:42:56 · 2039 阅读 · 6 评论 -
JAVA IO流 2
对象流(序列化)对象流序列化机制的理解序列化:把基本数据裂隙或对象写入数据源;反序列化:把对象从数据源中还原回来。对象流序列化与反序列化字符串操作and 自定义类实现序列化和反序列化操作ObjectInputOutputStreamTestpackage com.atguigu.java;import org.junit.Test;import java.io.*;/** * 对象流的使用 * 1.ObjectInputStream 和 ObjectOutputStream原创 2022-02-27 18:19:58 · 204 阅读 · 0 评论 -
JAVA IO流 1
IO流概述与流的分类以及IO流的体系结构1、英文和数字占一个字节;2、中文占一个字符,也就是两个字节;3、一字节等于8bit。IO流的体系结构(加蓝框的较为重要)FileReader读入数据的基本操作// ★程序在内存中运行,文件在磁盘上,把文件从磁盘上读入内存中来,这就需要输入流。// ★反之,把内存中的数据写到磁盘上的文件里就需要输出流。// ★Java 里的输入流与输出流是针对内存而言的,它是从内存中读写。本节在 FileReaderWriterTest.java中的mai原创 2022-02-06 00:11:36 · 519 阅读 · 0 评论 -
JAVA文件file
File类的实例化在FileTest.java中test1中测试。File类的常用方法hello.txthelloworldzqlFileTest.javapackage com.atguigu.java3;import org.junit.Test;import java.io.File;import java.io.IOException;import java.util.Date;/** * File类的使用 * * 1. File类的一个对象,代表一个原创 2022-02-04 16:44:12 · 948 阅读 · 0 评论 -
JAVA泛型
为什么要使用泛型就像垃圾分类一样,垃圾箱上写着什么类型,就往里面丢什么类型的垃圾。泛型是String类型的,就只能填String类型的数据。使用泛型举例GenericTest.javapackage com.atguigu.java;import org.junit.Test;import java.util.*;/** * * 泛型的使用 * 1.jdk 5.0新增的特性 * * 2.在集合中使用泛型: * 总结: * ① 集合接口或集合类在jdk5.0时都修改原创 2022-02-04 15:04:53 · 1152 阅读 · 0 评论 -
JAVA集合5(JAVA集合3的练习题加 泛型 篇)
集合-TreeSet的课后练习MyDate.javapackage com.atguigu.exer;/** * MyDate类包含: private成员变量year,month,day;并为每一个属性定义 getter, setter 方法; */public class MyDate implements Comparable<MyDate>{//让MyDate去实现这个Comparable接口,就是为了比较MyDate,所以泛型填MyDate private i原创 2022-02-03 21:18:27 · 165 阅读 · 0 评论 -
JAVA集合4(Map接口)
集合-HashMap集合-Map接口及其多个实现类的对比 * 一、Map的 实现类 的结构: * |----Map:双列数据,存储key-value对的数据 ---类似于高中的函数:y = f(x) * |----HashMap:作为Map的主要实现类;线程不安全的,效率高;可以存储null 的 key和value * |----LinkedHashMap:保证在遍历map元素时,可以按照添加的顺序实现遍历。(链式遍历) *原创 2022-02-03 18:01:46 · 713 阅读 · 0 评论 -
JAVA集合3(练习题)
集合-TreeSet的课后练习MyDate.javapackage com.atguigu.exer1;/** * MyDate类包含: private成员变量year,month,day;并为每一个属性定义 getter, setter 方法; */public class MyDate implements Comparable{ private int year; private int month; private int day; public原创 2022-02-02 20:14:16 · 222 阅读 · 0 评论 -
JAVA集合2(List接口和Set接口)
集合-List接口集合-List接口常用实现类的对比集合ArrayList,LinkedList,Vector的源码分析* 1. List接口框架 * * |----Collection接口:单列集合,用来存储一个一个的对象 * |----List接口:存储有序的、可重复的数据。 -->“动态”数组,替换原有的常规的数组 * |----ArrayList:作为List接口的主要实现类;线程不安全的,效率高;底层使用Object[]原创 2022-02-02 19:32:00 · 737 阅读 · 0 评论 -
JAVA集合1(Collection接口,iterator()方法,增强型for循环)
JAVA集合框架概述集合框架涉及到的apiList接口是继承Collection接口,Set接口是继承Collection接口,ArrayList 类是一个可以动态修改的数组,与普通数组的区别就是它是没有固定大小的限制,我们可以添加或删除元素。ArrayList 继承了 AbstractList ,并实现了 List 接口。Collection接口中的常用方法Collection接口中的常用方法代码测试1:CollectionTestpackage com.atguigu.java2;原创 2022-02-01 21:06:47 · 572 阅读 · 0 评论 -
JAVA注解Annotation
注解Annotation的使用举例举例JDK内置的三个基本注解package com.atguigu.java1;import org.junit.Test;import java.lang.annotation.Annotation;import java.util.ArrayList;import java.util.Date; /** * 注解的使用 * * 1. 理解Annotation: * ① jdk 5.0 新原创 2022-01-30 21:34:56 · 2477 阅读 · 3 评论 -
JAVA枚举类
自定义枚举类(jdk5.0之前)package com.atguigu.java;/** * 一、枚举类的使用 * 1.枚举类的理解:类的对象只有有限个,确定的。我们称此类为枚举类 * 2.当需要定义一组常量时,强烈建议使用枚举类 * 3.如果枚举类中只有一个对象,则可以作为一种单例模式的实现方式。 * * 二、如何定义枚举类 * 方式一:jdk5.0之前,自定义枚举类 * 方式二:jdk5.0,可以使用enum关键字定义枚举类 * *///自定义枚举类class Seas原创 2022-01-30 17:37:28 · 4543 阅读 · 0 评论 -
JAVA常用类 (JAVA比较器、System类、Math类、BigInteger与BigDecimal类)
JAVA比较器(Comparable接口与Comparator接口的使用)Goods.javapackage java1;/** * 商品类 * 用于test2。 */public class Goods implements Comparable{//实现Comparable的接口,重写compareTo(Object o) 的方法 private String name; private double price; public Goods() {原创 2022-01-30 00:25:54 · 432 阅读 · 0 评论 -
JAVA常用类 日期类(SimpleDateFormat、Calendar、LocalDate、LocalTime、LocalDateTime 、Instant、DateTimeFormatter类)
SimpleDateFormat类原创 2022-01-29 22:19:40 · 932 阅读 · 0 评论 -
StringBuffer类的对象append(null) 的问题分析
package java1;import org.junit.Test;public class IDEADebug { @Test public void testStringBuffer(){ String str = null;//String类型存地址值,此处存null,空指针 StringBuffer sb = new StringBuffer(); sb.append(str); //此处底层,变成添加四个原创 2022-01-29 16:31:00 · 2037 阅读 · 0 评论 -
String类课后算法题目
将一个字符串进行反转。将字符串中指定部分进行反转。比如“abcdefg”反转为”abfedcg”package exer;import org.junit.Test;public class StringDemo { /* 将一个字符串进行反转。将字符串中指定部分进行反转。比如“abcdefg”反转为”abfedcg” 方式一:转换为char[] */ public String reverse(String str,int startIndex,in原创 2022-01-29 16:15:41 · 391 阅读 · 0 评论 -
JAVA System类获得时间戳和两个Date类的使用
System类获得时间戳的方法和两种Date类的使用package java1;import org.junit.Test;import java.util.Date;/** * JDK 8之前日期和时间的API测试 */public class DateTimeTest { //2、两种Date类的使用 /* 父子类关系 java.util.Date类 |---java.sql.Date类 1.两个构造器的使用原创 2022-01-28 22:58:29 · 110 阅读 · 0 评论 -
Java常用类String类
字符串相关的类:String类原创 2022-01-28 22:31:42 · 139 阅读 · 0 评论 -
一道同步机制的练习
实现代码package java1;/** * 银行有一个账户。 有两个储户分别向同一个账户存3000元,每次存1000,存3次。每次存完打印账户余额。 分析: 1.是否是多线程问题? 是,两个储户线程 2.是否有共享数据? 有,账户(或账户余额) 3.是否有线程安全问题?有 4.需要考虑如何解决线程安全问题?同步机制:有三种方式。 */class Account{//账户 private double balance;//余额 public Account(do原创 2022-01-18 22:20:41 · 254 阅读 · 0 评论 -
JAVA多线程
程序进程线程概念打开IDEA就是打开进程,退出IDEA就是关闭进程。打开360安全卫士为一个进程,同时进行电脑体检,木马查杀和电脑清理为打开三个线程。每个线程都有自己的虚拟机栈和程序计数器,每个进程中的多个线程共享一个方法区和堆。单核与多核CPU的任务执行main()方法是一个主线程。(感觉最后这个并发举例不好,多个人抢一个篮球,倒是有多个线程抢一个时间片的意味)多线程的优点创建多线程方式一:继承Thread类一个线程就是程序执行的一条路径, 能用一条线画出来的就是一条路径原创 2022-01-18 22:04:15 · 407 阅读 · 0 评论 -
回形数格式方阵的实现
从键盘输入一个整数(1~20)则以该数字为矩阵的大小,把1,2,3…n*n 的数字按照顺时针螺旋的形式填入其中。例如: 输入数字2,则程序输出: 1 24 3输入数字3,则程序输出: 1 2 38 9 47 6 5输入数字4, 则程序输出:1 2 3 412 13 14 511 16 15 610 9 8 7算法:import java.util.Scanner;public class demo1 { public static v原创 2021-09-27 19:58:03 · 304 阅读 · 0 评论 -
JAVA异常
异常概述String写成string不是异常,是错误。Error/* * Error: * Java虚拟机无法解决的严重问题。如:JVM系统内部错误、资源耗尽等严重情况。比如:StackOverflowError和OOM。 * * 一般不编写针对性的代码进行处理。 */public class ErrorTest { public static void main(String[] args) { //1.栈溢出:java.lang.StackOverflowError ma原创 2021-09-24 22:53:32 · 99 阅读 · 0 评论 -
JAVA面向对象13(内部类)
内部类的分类及内部类的特点引入比如人这个类中,要定义大脑这个类,而大脑这个类除了人这个类别的类都不用,那就把大脑声明为人 的内部类了。内部类使用总结1、内部类分类2、内部类的特点3、如何实例化成员内部类4、成员内部类中调用外部类的结构/* * 类的内部成员之五:内部类 * 1. Java中允许将一个类A声明在另一个类B中,则类A就是内部类,类B称为外部类 * * 2.内部类的分类:成员内部类(静态、非静态) vs 局部内部类(方法内、代码块内、构造器内) * * 3.成员原创 2021-09-21 23:16:26 · 83 阅读 · 0 评论 -
为什么一个java源文件中只能有一个public类?
原文地址:https://www.cnblogs.com/zhukunqiang/p/6652787.html问题:一个".java"源文件中是否可以包括多个类(不是内部类)?有什么限制?答案:可以有多个类,但只能有一个public的类,并且public的类名必须与文件名相一致。一个文件中可以只有非public类,如果只有一个非public类,此类可以跟文件名不同。为什么一个java源文件中只能有一个public类?在java编程思想(第四版)一书中有这样3段话(6.4 类的访问权限):1.每个编转载 2021-09-21 22:09:19 · 1618 阅读 · 0 评论 -
JAVA面向对象12(接口)
接口的理解is a关系, 官员is a person,父子类关系。运动员is a技能,运动员是一个技能,不太合适。接口其余的和类相似,接口中实现的功能,运动员也就获取到了。接口的定义和使用、接口的多实现和继承性/* * 接口的使用 * 1.接口使用interface来定义 * 2.Java中,接口和类是并列的两个结构 * 3.如何定义接口:定义接口中的成员 * * 3.1 JDK7及以前:只能定义全局常量和抽象方法 * >全局常量:public static原创 2021-09-21 22:03:31 · 106 阅读 · 0 评论 -
JAVA面向对象11(抽象类,匿名子类对象,模板方法设计模式)
抽象类和抽象方法的使用抽象类和抽象方法的使用 package com.atguigu.java;/* * abstract关键字的使用 * 1.abstract:抽象的 * 2.abstract可以用来修饰的结构:类、方法 * * 3. abstract修饰类:即称为抽象类 * > 此类(抽象类)不能实例化 * > 抽象类中一定有构造器,便于子类实例化时调用(涉及:子类对象实例化的全过程) * > 开发中,都会提供抽象类的子类,让子类对象实原创 2021-09-20 22:59:13 · 135 阅读 · 0 评论 -
JAVA面向对象10(main()方法,代码块,final关键字)
理解main()方法的语法package com.atguigu.java2;/* * main()方法的使用说明: * 1. main()方法作为程序的入口 * 2. main()方法也是一个普通的静态方法 * 3. main()方法可以作为我们与控制台交互的方式。(之前:使用Scanner) */public class MainTest { //下一句public static void main(String[] args)使用public是使得 //范围尽可能的大,ja原创 2021-09-19 20:33:36 · 199 阅读 · 0 评论 -
JAVA面向对象9(单例设计模式)
什么是设计模式及单例设计模式单例设计模式:所谓类的单例设计模式,就是采取一定的方法保证在整个的软件系统中,对某个类只能存在一个对象实例。如何实现?饿汉式 vs 懒汉式单例的饿汉式实现public class SingletonTest1 { public static void main(String[] args) {// Bank bank1 = new Bank();// Bank bank2 = new Bank();//单例设计模式,构造器私有化,无法从外部直原创 2021-09-19 16:05:51 · 76 阅读 · 0 评论 -
JAVA面向对象8(关键字static)
关键字staticstatic引入## 静态变量与实例变量的对比static关键字的使用 * * 1.static:静态的 * 2.static可以用来修饰:属性、方法、代码块、内部类 * * 3.使用static修饰属性:静态变量(或类变量) * 3.1 属性,按是否使用static修饰,又分为:静态属性 vs 非静态属性(实例变量) * 实例变量:我们创建了类的多个对象,每个对象都独立的拥有一套类中的非静态属性。当修改其中一个对象中的 *原创 2021-09-19 14:00:26 · 98 阅读 · 0 评论 -
JAVA面向对象7(包装类、String和基本数据类型的转化)
单元测试代码的使用什么是单元测试:1、单元测试是针对最小的功能单元编写测试代码。2、Java程序最小的功能单元是方法。3、单元测试就是针对单个Java方法的测试。使用main()方法测试的缺点:只能有一个main()方法,不能把测试代码分离。单元测试的好处:1、确保单个方法运行正常2、如果修改了方法代码,只需确保其对应的单元测试通过3、测试代码本身就可以作为示例代码4、可以自动化运行所有测试并获得报告...原创 2021-09-18 21:49:08 · 198 阅读 · 0 评论 -
JAVA面向对象6(Object类结构的剖析,Object类的方法 )
Object类结构的剖析java.lang.Object类1.Object类是所有Java类的根父类2.如果在类的声明中未使用extends关键字指明其父类,则默认父类为java.lang.Object类3.Object类中的功能(属性、方法)就具有通用性。属性:无方法:equals() / toString() / getClass() /hashCode() 返回当前对象的一个哈希值/ clone()克隆 / finalize()wait() 、 notify()、notifyAll()原创 2021-09-16 15:53:47 · 268 阅读 · 0 评论