- 博客(33)
- 收藏
- 关注
原创 【Java--自定义注解】
什么是注解? ▪ Annontation是Java5开始引入的新特征,中文名称注解。▪ 它提供了一种安全的类似注释的机制,用来将任何的信息戒元数据(metadata)与程序元素(类、方法、成员变量等)进行关联。▪ 为程序的元素(类、方法、成员变量)加上更直观更明了的说明,这些说明信息是与程序的业务逻辑无关,并且供指定的工具和框架使用。▪ Annontation像一种修饰符一样,应用于包、类型、构造方法、方法、成员变量、参数及本地变量的声明语句中。▪ Java注解是附加在代码中的一些元信息,用于一些
2022-05-26 21:03:51
161
原创 Java Stream API
StreamA sequence of elements supporting sequential and parallel aggregate operations Stream是一组用来处理数组、集合的API▪ Java 8之所以费这么大功夫引入函数式编程,原因有二:– 代码简洁函数式编程写出的代码简洁且意图明确,使用stream接口让你从 此告别for循环。– 多核友好,Java函数式编程使得编写并行程序从未如此简单,你需要的全部 就是调用一下parallel()方法Stream
2022-05-26 17:20:00
389
原创 Java--Lambda
Lambda表达式的介绍▪ Lambda表达式是 Java8 中最重要的新功能之一。使用 Lambda 表达 式可以替代只有一个抽象函数的接口实现,告别匿名内部类,代码看 起来更简洁易懂。Lambda表达式同时还提升了对集合、框架的迭代、 遍历、过滤数据的操作Lambda表达式的特点 1:函数式编程 2:参数类型自动推断 3:代码量少,简洁public class LambdaTest { public static void main(String[] args) throws Ex
2022-05-26 16:14:30
176
原创 Java--网络
网络的概念▪ 网络:一组相互连接的计算机– 多台计算机组成– 使用物理线路进行连接–相互连接的计算机可以交换数据,共享资源。网络编程的三要素【1】IP地址:唯一标识网络上的每一台计算机 两台计算机之间通信的必备要素【2】端口号:计算机中应用的标号(代表一个应用程序) 0-1024系统使用或保留端口, 有效端口0-65536【3】通信协议:通信的规则 TCP,UDP网络模型▪ OSI参考模式:开放系统互连参考模型(Open System Intercon...
2022-05-26 16:00:32
151
原创 Java--多线程
线程的概念▪ 程序:Program,是一个指令的集合▪ 进程:Process,(正在执行中的程序)是一个静态的概念 进程是程序的一次静态态执行过程, 占用特定的地址空间. 每个进程都是独立的,由3部分组成cpu,data,code缺点:内存的浪费,cpu的负担▪ 线程:是进程中一个“单一的连续控制流程”(a single sThread,equential flow of control)/执行路径线程又被称为轻量级进程(lightweight process)。Threads
2022-05-26 15:28:52
77
原创 Java--线程池
为什么需要线程池▪ 在实际使用中,线程是很占用系统资源的,如果对线程管理不善很容易导致系统问题。因此,在大多数并发框架中都会使用线程池来管理线程,使用线程池管理线程主要有如下好处:– 1、使用线程池可以重复利用已有的线程继续执行任务,避免线程在创建和销毁时造成的消耗– 2、由于没有线程创建和销毁时的消耗,可以提高系统响应速度– 3、通过线程可以对线程进行合理的管理,根据系统的承受能力调整可运行线程数量的大小等工作原理▪ 线程池执行所提交的任务过程:▪ 1、先判断线程池中核心线程池
2022-05-26 15:19:20
61
原创 IO流--Reader和Wirter
Reader与Writer的编码方式▪ 获得当前开发环境的字符编码方式 ▪System.out.println(System.getProperty("file.encoding"));▪ 字符流的读写根据需要设置编码方式 ▪ 涉及到的类:读:FileReader (File file) 写:FileWriter(File file)▪ 加入缓冲区的读:BufferedReader(Reader fr) ▪ 加入缓冲区的写:BufferedWriter(Writer bw)pub...
2022-05-26 14:03:26
146
原创 java-IO流(File)
流的基本概念 数据源 data source. 提供原始数据的原始媒介。常见的:数据库、文件、其他程序、内存、网络连接、IO设备。 数据源就像水箱,流就像水管中流着的水流,程序就是我们最终的用户。 流是一个抽象、动态的概念,是一连串连续动态的数据集合。Java流的分类按流区分为输出流和输入流输出流:OutputStream和Writer作为基类输入流:InputStream和Reader作为基类输入输出流是相对于计算机内存来说的,而不是相对于源和目标按照处理数...
2022-05-10 14:04:53
87
原创 【Iterator】
Iterator的使用:在java代码中包含三种循环的方式 do...while while for还有一种增强for循环的方式,可以简化循环的编写所有的集合类都默认实现了Iterable的接口,实现此接口意味着具备了增强for循环的能力,也就是for-each 增强for循环本质上使用的也是iterator的功能 方法: iterator() foreach() 在iterator的方法中,要求返回一个Iter...
2022-05-10 13:51:46
151
原创 集合框架 Collection接口 List与Set接口 泛型
为什么使用集合框架?如果并不知道程序运行时会需要多少对象,或者需要更复杂方式存储对象——可以使用Java集合框架。Java集合框架包含的内容:Java集合框架提供了一套性能优良,使用方便的接口和类,它们位于java.util包中。java集合框架: Collection:存放的是单一值特点: 1.可以存放不同类型的数据,而数组只能存放固定类型的数据 2.当使用ArrayList子类实现的时候,初始化的长度是10,当长度不够的时候会自动进行扩容操作API方法:...
2022-05-10 13:41:50
121
原创 常用类和包装类
包装类与基本数据类型 包装类是将基本数据类型封装成一个类,包含属性和方法 使用: 在使用过程中,会涉及到自动装箱和自动拆箱 装箱:将基本数据类型转换成包装类(使用valueOf();) 拆箱:将包装类转换成基本数据类型(使用类型Value();) low:-128 high:127 -128~127中有256个单独的空间 cache数组-public ...
2022-05-10 10:39:05
88
原创 自定义异常和抛出异常
异常: 在程序运行过程中,出现的不正常情况叫做异常 注意: 1.相同的代码在运行的时候,根据输入的参数或者操作的不同,有可能会发生异常,有可能不会发生异常, 应该在写代码的过程中尽可能的保证代码的正确性,不要到处都是bug 2.如果要解决代码中出现的异常,需要添加非常复杂的代码逻辑来进行判断,会使代码变得非常臃肿,不利于维护, 可读性比较差,因此,推荐大家使用异常机制来处理程序运行过程中出现的问题。 3.程序在运行过...
2022-05-10 10:33:37
408
原创 Java-成员内部类
内部类:(当作类中的一个普通成员变量,只不过此成员变量是class的类型):一个Java文件中可以包含多个class,但是只能有一个public class 如果一个类定义在另一个类的内部,此时可以称之为内部类使用:创建内部类的时候,跟之前的方法不一样,需要在内部类的前面添加外部类来进行修饰 OuterClass.InnerClass innerclass = new OuterClass().new InnerClass();特点:1.内部类可以方便的访问外部类的私有属性2.外部类不能直接
2022-05-10 10:28:34
537
原创 面向对象接口
在java中只有单继承,当一个类需要继承多个类的时候,那么就需要考虑使用接口在项目开发过程中,接口用的非常广泛用法:1.接口使用interface定义2.如果一个类实现了一个接口,那么需要把接口中的所有的抽象方法全部实现3.一个类实现接口使用implements特征: 1.接口中的方法都是使用public abstract修饰的,即使不写public修饰符,它也不是default修饰的,仍然是public修饰,并且只能是public修饰2.接口不可以被实例化,这...
2022-05-10 10:24:40
84
原创 【抽象类object和instanceof的使用】
object对象和instanceof的使用import java.util.Objects;public class ObjectTest { private String name; private int age; public ObjectTest(){// super(); } public ObjectTest(String name,int age){ this.name = name; this.a...
2022-05-10 10:20:21
962
原创 【面向对象抽象类】
子类转换为父类:自动转换---- 上转型对象不能操作子类新增的成员变量和方法。 ---- 上转型对象可以操作子类继承或重写的成员变量和方法。 ---- 如果子类重写了父类的某个方法,上转型对象调用该方法时,是调用的重写方法。2、父类转换为子类:强制转换 ---- 编译阶段不会出错,运行阶段会出错类型转换 ---- 向上转型——子类转换为父类,自动进行类型转换
2022-05-06 11:01:03
210
原创 【数据类型】
/*java中的运算符: 算术运算符: +,-,,/,%,++,-- 赋值运算符 = 一个等号=是赋值,两个等号是关系运算符 扩展赋值运算符:+=,-=,=,/= 关系运算符: >,<,>=,<=,,!= 逻辑运算符: &&,||,! 位运算符: &,|,^,~ , >>,<<,>>> (了解!!!) 条件运算符 ?:*/public class OperatorDemo{ public static voi
2022-05-03 01:02:51
70
原创 【抽象类和object的用法】
子类转换为父类:自动转换---- 上转型对象不能操作子类新增的成员变量和方法。 ---- 上转型对象可以操作子类继承或重写的成员变量和方法。 ---- 如果子类重写了父类的某个方法,上转型对象调用该方法时,是调用的重写方法。2、父类转换为子类:强制转换 ---- 编译阶段不会出错,运行阶段会出错类型转换 ---- 向上转型——子类转换为父类,自动进行类型转换
2022-01-20 17:54:19
132
原创 【面向对象3】
继承是什么?类是对对象的抽象,继承是对某一批类的抽象,从而实现对现实世界更好的建模extends的意思是“扩展”。子类是父类的扩展如何使用继承?使用继承 --编写父类 --编写子类,继承父类 --一个类只能继承一个父类super是直接父类对象的引用。2、可以通过super来访问父类中被子类覆盖的方法或属性。3、普通方法: 没有顺序限制。可以随便调用。4、构造函数中: 任何类的构造函数中,若是构造函数的第一行代码没有显式的调用super(…);那么Java默
2022-01-20 17:46:14
237
原创 面向对象构造方法
this表示的是当前对象本身this代表当前对象的一个引用。在类中,用static声明的成员变量为静态成员变量 ,或者叫做: 类属性,类变量.它为该类的公用变量,属于类,被该类的所有实例共享,在类被载入时被显式初始化对于该类的所有对象来说,static成员变量只有一份。被该类的所有对象共享可以使用”对象.类属性”来调用。不过,一般都是用“类名.类属性”static变量置于方法区中用static声明的方法为静态方法不需要对象,就可以调用(类名.方法名)在调用该方法时,不会将对象的引用传递给它,所以在st
2022-01-09 16:14:19
226
原创 面向对象编程
面向对象的两个要素:*类:对一类事物的描述,是抽象的、概念上的定义 *对象:是实际存在的该类事物的每个个体,因而也称为实列 可以理解为:类= 抽象概念的人;对象= 实实在在的某个人 * 面向对象程序设计的重点是类的设计; * 设计类,其实就是设计类的成员。学习面向对象内容的三条主线1.Java 类及类的成员:属性、方法、构造器、代码块、内部类 * 2.面向对象的三大特征:封装、继承、多态性、(抽象性) * 3.其它关键字:this、super、static、final、abstract、interf
2022-01-06 18:11:47
248
原创 多维数组-
定义类的时候,属性和方法不是必须的。一个源文件中可以有N个类,但是有且只能有一个public修饰的类,并且这个源文件的名称必须和public修饰的类名一致 属性:(成员变量) 语法: [修饰符] 数据类型 属性名 = [默认值]; 注意: 1、修饰符和默认值可以没有,没有的时候系统会根据数据类型对应的给默认值 2、数据类型和属性名一定要有,属性名的定义要符合合法的标识符命名规范 方法: 语法: [修饰符] 方法的返回类型 方法名(形参列表){逻辑代码; } 注意: 1、方法可以
2021-12-10 00:30:53
65
原创 数组--1
import java.util.Arrays;数组也是数据结构中的一种实现,在存储数据的时候经常用数组来存储 经常见的数据结构: 线性表 非线性表 树 图 队列 堆 栈 数组经常用来考算法: 面试需求: 1、写出某个算法 冒泡排序 选择排序 插入排序 快速排序 2、排序算法的时间复杂度(空间复杂度) 衡量一个数据结构是否是合适的衡量标准 3、排序算法的稳定性 排序之前数组的元素位置和排序之后的数组元素位置是否发生变化
2021-12-02 00:09:52
69
原创 流程控制语句总结
import java.util.Scanner;数组:包含相同数据类型的有序集合 特点: 1、数组中的数据类型必须是同一种数据类型,可以是基本数据类型也可以是引用数据类型 2、数组在定义的时候必须指定大小,而且大小是不可以改变的 3、从数组中获取数组元素的时候,需要使用下标来获取,下标从0开始 4、数据是有序集合,这个有序指的不是大小的排序,指的是插入的顺序 使用: 1、声明数组 2、分配空间 3、赋值 4、数组操作public class ArrayDemo{
2021-12-02 00:09:21
454
原创 递归算法及注意事项
递归算法:程序在运行的过程中,发生自身调用自身的情况递归算法:程序在运行的过程中,发生自身调用自身的情况注意: 1、如果使用循环能解决问题,尽量不要使用递归算法 在使用递归算法的时候会加大资源的消耗 如果递归算法的深度过于深,可能会造成栈溢出 2、如果使用其他方法都不能解决问题,就必须要使用递归算法 如:输出某个磁盘下所有的文件名public class BuyChicken{public static void main(String[] args){ fo
2021-11-26 23:02:45
899
原创 流程控制语句
continue:跳出当前循环,进行下一次循环public class ContinueDemo{ public static void main(String[] args){ //把100~150之间不能被3整除的数输出 for(int i = 100; i <=150; i++){ if(i % 3 == 0){ continue; } System.out.println(i); } }} break:完全跳出循环 当包含多层循环的时候,break只
2021-11-26 20:46:54
52
原创 流程控制语句
循环结构: 1、while循环:先进行条件判断,再执行逻辑代码 初始化:变量初始化 条件判断:只允许返回true或false 循环体:如果条件符合要执行的逻辑代码 迭代变量:促使循环跳出的条件 2、do while循环:先执行逻辑代码,再进行条件判断public class WhileDemo{ public static void main(String[] args){ //输出100以内正整数
2021-11-26 20:46:13
139
原创 【数据类型的转换】
基本数据类型之间的转换 :在赋值运算或算术运算时,要求数据类型相同,否则要进行类型转换 ▪ 转换方式: – 自动转换 – 强制转换 ▪ 除boolean类型外,所有的基本数据类型因为各自的精度不同,赋值时 都要考虑这个问题 ▪ 除boolean类型外,所有的基本数据类型包括:整型,浮点型,字符型。算术运算时的转换 – 整型,浮点型,字符型数据可以混合运算。 – 运算中,不同类型的数据先转化为同一类型,然后进行运算,转换从低级到高级。赋值运算时的转换 –自动类型转换(左>右)低------------
2021-11-19 21:41:43
65
原创 【Java 数据运算符】
/*java中的运算符: 算术运算符: +,-,,/,%,++,-- 赋值运算符 = 一个等号=是赋值,两个等号是关系运算符 扩展赋值运算符:+=,-=,=,/= 关系运算符: >,<,>=,<=,,!= 逻辑运算符: &&,||,! 位运算符: &,|,^,~ , >>,<<,>>> (了解!!!) 条件运算符 ?:*/public class OperatorDemo{ public static voi
2021-11-17 23:02:45
64
原创 Java常量和变量
/*常量和变量 变量:在程序执行的过程中,会发生变化的量我们称之为变量 常量:在程序执行的过程中,不会发生变化的量,也就是最终量,我们称之为常量 变量:定义 数据类型 变量名称 = 值 作用域 1、先声明后赋值 int a; a = 10; 2、声明+赋值 int a = 10; 常量: 1、定义常量的时候一般我们使用关键字final 2、常量定义一般使用大写字母和_组成 注意: 在类内部,方法之
2021-11-15 20:46:06
363
原创 初始Java
/*如果在源文件中出现乱码,是因为DOS系统的默认编码方式是GBK,所以这时候需要修改源码的编码方式为ANSI,这样就可以处理乱码问题了。第一个java程序需要注意的点: 1、public static void main(String[] args)是所有java应用程序的入口 2、public static void main不能变的,3、main方法的参数String[] args有几种写法:String [] args,String args[] 4、main方法的参数名称
2021-11-11 19:34:56
459
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人