Java基础
文章平均质量分 62
Java基础知识
shadow_maples
个人学习笔记,不足错误之处欢迎指正
展开
-
内置注解与自定义注解
内置注解与自定义注解原创 2022-11-17 11:56:47 · 149 阅读 · 1 评论 -
多线程内容
多线程原创 2022-01-02 18:23:43 · 304 阅读 · 0 评论 -
方法引用
方法引用通过方法的名字来指向一个方法。方法引用可以使语言的构造更紧凑简介,减少冗余代码。方法引用使用一对冒号::下面,我们在Car类中定义了4个方法作为例子来区分Java中4种不同方法的引用package com.it.test;@FunctionalInterfaceinterface Supplier<T>{ T get();}class Car { public static Car create(final Supplier<Car> sup原创 2021-09-26 16:42:08 · 58 阅读 · 0 评论 -
Lambda表达式(待更新)
package com.it.test;public class Lambda2 { public static void main(String[] args) { Lambda2 lambda2 = new Lambda2(); //类型声明 MathOperation addition = (int a,int b) -> a+b; //不用类型声明 MathOperation subtraction原创 2021-09-26 15:40:01 · 57 阅读 · 1 评论 -
Java输入输出流
概述File类的使用字节流:主要传输二进制的字节数据:0,1字符流:传输a,b,c等等char类型的字符对象的序列化与反序列化输出流输出设备:屏幕、打印机输入流输入设备:键盘、扫描仪File类什么是文件?文件可认为是相关记录或放在一起的数据的集合在Java中,使用java.io.File类对文件进行操作。File类的常用方法import java.io.File;import java.io.IOException;public class FileDemo {原创 2021-09-07 20:51:32 · 68 阅读 · 0 评论 -
Java多线程
主要内容什么是多线程线程的创建线程的状态和生命周期线程调度同步和死锁什么是线程进程的概念:进程是指可执行程序并存放在计算机存储器的一个指令序列,它是一个动态执行的过程线程是比进程还要小的运行单位,一个进程包含多个线程线程可以看做一个子程序时间片的轮转:是通过对CPU时间的轮转来达到多个程序同时运行的效果 每个时间片很短,所以我们感受不出来线程的创建有两种创建方式:创建一个Thread类,或者一个Thread子类的对象创建一个实现Runnable接口的类的对象Threa原创 2021-09-07 08:21:17 · 100 阅读 · 1 评论 -
Java泛型
泛型概述为什么使用泛型?在Java中增加泛型之前,泛型程序设计使用继承来实现的,这样做的坏处:需要进行强制转换;可想集合中添加任意类型的对象,存在风险使用泛型的好处:提高Java程序的类型安全 通过前面的学习我们知道,在集合中可以添加Object类型的对象,如果在不使用泛型的情况下定义了一个ArrayList对象,那 么各种类的对象都可以添加到该集合中。而在从集合中取值时,都需要进行强制类型转换,可以把取出的对象转换成任意类 型,但是编译时不报错,但是运行时会发生ClassCastExcepti原创 2021-09-05 19:05:24 · 50 阅读 · 0 评论 -
Java集合排序
集合中的基本数据类型排序集合中的字符串排序Comparator接口Comparable接口这两个接口是为自定义类进行排序准备的回顾:数组的排序:int[] arr={15,23,14,43,64};Arrays.sort(arr);集合排序:使用Collections类的sort()方法对List集合中的数据进行排序sort(List list)根据元素的自然顺序对指定列表按升序进行排序对整形进行排序package com.imooc.sort;import java..原创 2021-09-05 10:05:30 · 226 阅读 · 0 评论 -
Java集合(List,Set,Map)
概念Java中的集合是工具类,可以存储任意数量的具有共同属性的对象为什么要使用集合,而不用数组呢?集合的长度是可以动态改变的,数组可以去满足存储固定长度的数据,集合更适用于数据动态变化的场景集合和数组的区别:应用场景:无法预测存储数据的数量同时存储具有一对一关系的数据需要进行数据的增删数据重复问题体系结构分为两类:Collection:存储类的对象子接口List(序列)Queue(队列)Set(集)Map:主要以键值对的形式存储信息List和Queue里面存原创 2021-09-04 16:08:16 · 216 阅读 · 0 评论 -
Java字符串
字符串处理类有很多种:String和StringBuilder等主要内容:如何创建String对象String对象的常用方法==和eqals方法的区别String的不变性String常用方法简介String对象常用的三种创建方式:String s1 = "imooc"; //创建一个字符串对象imoocString s2 = new String(); //创建一个空字符串对象String s3 = new String("imooc");原创 2021-09-03 10:53:44 · 62 阅读 · 0 评论 -
Java包装类
课程目标什么是包装类包装类与基本数据类型之间的对应关系包装类的常用方法包装类与基本数据类型其中基本数据类型是不具有对象特征的,也就是说他们不能像对象一样具有属性和方法以及对象化交互而通过包装类,就可以使基本数据类型拥有属性、方法;可以对象化交互包装类与基本数据类型的对应关系从API上得知,java中的包装类都是用finally修饰的,所以都是不能被继承的,因此也没有子类数值型都继承自Number类,字符型和布尔型都继承自Object类回顾:静态方法即可通过类名调用,也可通过对象名原创 2021-09-03 08:10:41 · 74 阅读 · 0 评论 -
Java异常
异常分类本质上是程序上的错误(编译期间和运行期间的错误)编译期间错误,如:括号不配对,关键字书写错误,少写分号等运行期间错误,如:使用空的对象引用调用方法,数组访问时下标越界,算术运算时除数为0等等通过Throwable及其相关子类对各种异常进行描述两个重要子类:ErrorException:是程序本身可以处理的异常,异常处理通常指针对这种类型异常的处理,又包括:非检查异常Unchecked Exception:编译器不要求强制处理的异常,包括RuntimeException及其相原创 2021-09-02 19:18:31 · 55 阅读 · 0 评论 -
Java异常
异常分类本质上是程序上的错误(编译期间和运行期间的错误)编译期间错误,如:括号不配对,关键字书写错误,少写分号等运行期间错误,如:使用空的对象引用调用方法,数组访问时下标越界,算术运算时除数为0等等通过Throwable及其相关子类对各种异常进行描述两个重要子类:ErrorException:是程序本身可以处理的异常,异常处理通常指针对这种类型异常的处理,又包括:非检查异常Unchecked Exception:编译器不要求强制处理的异常,包括RuntimeException及其相原创 2021-09-01 21:34:12 · 45 阅读 · 0 评论 -
枚举的应用
枚举的基本使用枚举在switch中的应用原创 2021-09-01 19:07:50 · 43 阅读 · 0 评论 -
java多态(下)
接口关键字:implements接口命名通常以I开头接口的访问修饰符通常为public或者默认访问修饰符(不写)接口里面默认的是public abstract。也正因为默认就是public abstract,所以一般建议就是在接口内直接写方法:void(根据返回值类型设置啊) 方法名 ();void methodname ();接口是一种特殊的抽象类,接口中的方法全部是抽象方法(但其前的abstract可以省略),所以抽象类中的抽象方法不能用的访问修饰符这里也不能用。而且protected访问原创 2021-09-01 18:54:55 · 59 阅读 · 0 评论 -
java多态(上)
多态多态的实现可以借由向上转型和动态绑定机制来完成,其中,向上转型实现了将子类对象向上转型为父类类型;而动态绑定机制能识别出对象转型前的类型,从而自动调用该类的方法,两者相辅相成。当我们在实际开发当中,同一个操作行为针对不同的参数返回不同的实例对象,完成不同的操作结果时,就比较使用多态的操作。编译时多态:又叫设计时多态,通常是通过方法重载实现的运行时多态:程序运行时动态决定调用哪个方法java中的多态大多是指运行时多态向上转型必要条件:满足继承关系父类引用指向子类对象向上转型(也原创 2021-09-01 15:30:38 · 84 阅读 · 0 评论 -
面向对象三大特点之继承(下)
继承(下)(上)节回顾继承的概念和特点继承的代码实现方法重写访问修饰符的分类和作用super关键字的使用继承的初始化顺序本节内容简介object类final关键字的使用注解简介object类(上)object类是所有类的父亲一个类没有使用extends关键字明确标识继承关系,则默认继承Object类(包括数组)Java中的每个类都可以使用Object中定义的方法(上)中主要介绍了一下equal与==的区别,前面博客有提及Object类中的equal与“=原创 2021-08-08 17:27:23 · 83 阅读 · 0 评论 -
面向对象三大特征之继承
什么是继承?继承有哪些特点?我们如何在java中实现继承?继承一种类与类之间的关系使用已存在的类的定义作为基础建立新类新类的定义可以增加新的数据或新的功能,也可以使用父类的功能,但不能选择性的继承父类注意:只能单继承,只能有一个父类,并且只能子类继承父类,父类不能访问子类成员。父类也被称为超类,基类;子类也被称为派生类//父类的构造不允许被继承、不允许被重写public Animal(){ }继承后的初始化顺序父类静态成员→子类静态成员→父类对象构造→子原创 2021-07-31 22:35:36 · 48 阅读 · 0 评论 -
访问修饰符的分类和作用
访问修饰符公有的:public私有的:private受保护的:protected默认private:只允许在本类中进行访问public:允许在任意位置进行访问protected: 允许在当前类、同包子类/非子类调用、跨包子类调用;但跨包非子类是不允许的默认:允许在当前类、同包子类/非子类调用;跨包不允许访问修饰符本类同包子类其他private√默认√√protected√√√public√√√√...原创 2021-07-31 22:29:33 · 118 阅读 · 0 评论 -
Scanner使用
java.util.Scanner是Java5的新特性,我们可以通过Scanner类来获取用户的输入基本语法:Scanner s = new Scanner(System.in);通过Scanner类的next()与nextLine()方法获取输入的字符串,在读取前我们一般需要使用hasNext()和hasNextLine()判断是否还有输入的数据Scanner对象next():一定要读取到有效字符后才可以完成结束输入对输入有效字符之前遇到的空白,next()方法会自动将其去掉只有输原创 2021-07-24 11:23:49 · 60 阅读 · 0 评论 -
Java数据类型
原创 2021-07-18 10:07:05 · 51 阅读 · 0 评论 -
static关键字
静态成员从这个类第一次加载就开始产生一直到这个类不再有任何对象被使用类对象共享类加载时产生,销毁时释放,生命周期长静态方法访问方式:1、对象.成员 2、类.成员static加在属性前时。叫做静态属性/类属性public static int price;static加在成员方法前时叫做:类方法、静态方法两者都推荐使用:类.静态成员static不能加在class前面,也不能加在方法内的局部变量前面调用方式比普通的成员方法多一种形式,编写方法体时也有一些特殊的要求静态方法中不能原创 2021-07-14 16:05:18 · 47 阅读 · 0 评论 -
引用数据类型-数组
引用数据类型应用-对象数组语法:声明(两种方式):类型[] 数组名;类型 数组名[];实例化:数组名=new 类型[长度];也可以联合完成声明并完成实例化的过程(2种方式):类型[] 数组名 = new 类型[长度];类型[] 数组名 = {数据1,数据2,数据3};需要注意:当定义对象数组时,大括号内的数据的类型需与前面定义数组的类型匹配。初始化后数组成员的默认值:对象数组:默认值为null基本数据类型声明的对象:各类型有各自默认值(譬如:int是0,dou原创 2021-07-14 15:55:40 · 264 阅读 · 0 评论 -
java中的equals函数与==的区别
Java中==和equal的区别为:1、== 表示 判断2个变量或对象实例是否指向同一个内存空间,equals()表示判断2个变量或对象实例所指向的内存空间的值是否相同。2、== 表示 对内存地址进行比较,equals()表示对字符串的内容进行比较。3、== 表示引用是否相同,equals()表示值是否相同。...原创 2021-07-05 20:48:04 · 90 阅读 · 0 评论 -
面向对象三大特征之封装
封装将类的某些信息隐藏在类内部,不允许外部程序直接访存通过该类提供的方法来实现对隐藏信息的操作和访问隐藏对象的信息留出访问的接口只有getXXX方法的属性是只读属性只有setXXX方法的属性是只写属性封装的作用:提高程序的安全性,保护数据隐藏代码的实现细节统一接口系统可维护增加了get,获得这个数据set,给这个数据设置值Alt+insert(ins):自动生成get,set方法记住这句话:属性私有,get/set(set方法里会添加一些安全性的判断)原创 2021-07-04 12:53:29 · 29 阅读 · 0 评论 -
类和对象
对象与类的简述:对象:用来描述客观事物的一个实体类:具有相同属性和方法的一组对象的集合类包括:属性(成员属性)和方法(成员方法)public class 类名{ //定义属性部分 [访问修饰符]数据类型 属性名 //定义方法部分 [访问修饰符] 返回类型 方法名(参数){ }}创建并引用对象类名 对象名=new 构造方法();对象名.属性对象名.方法名()实例化对象的过程(Cat one = new Cat();)可以分为两部分1.原创 2021-06-29 20:41:25 · 78 阅读 · 0 评论 -
HelloWorld详解,编译型与解释型语言
HelloWorld记事本写java文件随便新建一个文件夹,存放代码新建一个java文件文件后缀名为.java文件内容public class Hello{public static void main(String [] args ){ System.out.println("HelloWorld"); }}①cmd窗口下输入javac Hello.java 运行成功后会产生一个class文件②输入java Hello 就是运行上一步产生的clas原创 2021-06-16 20:21:39 · 82 阅读 · 0 评论 -
jdk(详细),jre,jvm
[jdkJDK:java开发者工具,其中包括了JRE和JVMJRE:java运行环境JVM:java虚拟机,java的跨平台,核心就是jvm](https://imgtu.com/i/2XwLTI)卸载JDK1.在我的电脑-属性-高级-环境变量 查看JDK安装目录2.删除jdk1.8.0_131整个文件夹3.删除环境变量中的JAVA_HOME4.删除path下关于java的目录5.cmd状况输入java -version查看版本,若无效则表示删除成功下载JDK1.百度搜索JDK8(原创 2021-06-16 20:15:26 · 69 阅读 · 0 评论 -
java的诞生,特性及优势,三种版本
java的诞生1872年C诞生贴近硬件,运行极快,效率较高操作系统,编译器,数据库,网络系统等指针和内存管理1982年C++诞生面对对象兼容C图形领域、游戏等1995年Java诞生!为了建立一种:语法有点像C没有指针没有内存管理真正的可移植性,编写一次,到处运行面向对象类型安全高质量的类库。。。一部分程序员共同努力开发出了java[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-D4aXr6WG-16238447原创 2021-06-16 19:59:41 · 76 阅读 · 0 评论