![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java学习笔记
文章平均质量分 59
Broken故城
写bug我是专业的
展开
-
函数式编程
java8的stream使用的是函数式编程模式,如同名字一样,可以对集合或数组进行链状流式的操作,可以更方便的让我们对集合或数组操作。原创 2023-01-15 17:54:03 · 363 阅读 · 0 评论 -
git学习笔记
版本控制版本迭代分类本地版本控制集中版本控制(svn)分布式版本控制(git)git配置查看配置git config -l查看不同级别的配置文件# 查看系统configgit config --system --list# 查案当前用户配置git config --global --list命令创建本地仓库git init克隆远程仓库git clone [url]查看文件状态# 查看指定文件状态git status [filename]# 查看所有文件原创 2021-10-23 18:49:30 · 73 阅读 · 0 评论 -
MAVEN笔记
1、MAVEN的安装解压新建系统变量MAVEN_HOME,值为解压后文件夹的路径path变量中添加bin目录路径需要依赖于JAVA_HOME2、仓库种类以及各种仓库的关系默认仓库位置为:${user.home}/.m2/repository (本地仓库)联网状态会自动从中央仓库下载没有的jar包实际中会再创建一个远程仓库(私服)(公司中常用)3、MAVEN标准目录结构src/main/java目录 核心代码部分src/main/resouces 配置文件部分src/原创 2021-02-10 18:45:15 · 63 阅读 · 0 评论 -
java学习笔记(45)JDBC
45、JDBC1、概述java程序操作数据库的方法2、使用步骤1、导入驱动jar包复制包到lib目录下右键,add as library加入项目2、注册驱动Class.forname("com.mysql.jdbc.Driver");//驱动文件的路径3、获取连接对象Connection conn = DriverManager.getConnection("jdbc:mysql://主机名:端口号/库名", "用户名", "密码");Connection conn =原创 2020-06-22 14:48:01 · 145 阅读 · 0 评论 -
java学习笔记(44)注解
44、注解1、概念1.1、概念说明程序的,给计算机看的1.2、定义注解也叫元数据,一种代码级别的说明,与类、接口、枚举是同一个层次,可以声明在包、类、字段、方法、局部变量、方法参数等的前面,用来对这些元素进行说明、注释1.3、分类编写文档:通过代码里标识的注解声明文档代码分析:通过代码里标识的注解对代码进行分析编译检查:通过代码里标识的注解让编译器能实现基本的编译检查2、预定义的注解2.1、@Override检测是否继承自父类2.2、@Deprecated表示标注的内容以过原创 2020-06-01 21:54:51 · 102 阅读 · 0 评论 -
java学习笔记(43)反射
43、反射1、概述框架设计的灵魂将类的各个组成部分封装为其他对象,这就是反射机制可以在程序运行过程中操作这些对象可以解耦,提高程序可拓展性2、获取Class对象的三种方式1、源代码阶段Class.forname(‘全类名’),将字节码文件加载进内存,返回class对象多用于配置文件2、类对象阶段类名.class多用于参数传递3、运行时阶段对象.getClass();多用于对象的获取字节码3、class对象的功能获取的功能获取成员变量们getFields(),获取所有p原创 2020-06-01 21:54:19 · 113 阅读 · 0 评论 -
java学习笔记(42)Junit单元测试
42、Junit单元测试1、测试分类1.1、黑盒测试输入一个值,看输出的值是否符合预期,不需要写代码1.2、白盒测试关注程序运行过程,需要写一些代码2、Junit使用Junit属于白盒测试步骤定义一个测试类(测试用例)建议类名为被测试类名Test包名:xxx.xxx.xxx.test定义测试方法,可以独立运行。建议方法名为test测试方法名,建议返回值使用void,参数列表建议空参给方法加Test注解判定结果:红色失败,绿色成功需要导入Junit依赖3、断言Assert原创 2020-06-01 21:53:48 · 208 阅读 · 0 评论 -
java学习笔记(41)方法引用
41、方法引用1、概述对lambda表达式的简化双冒号::为引用运算符,而它所在的表达式称为方法引用,如果lambda表达式要表达的函数式接口已经存在,要使用的方法也已经存在,这可以用过方法引用来优化lambda的书写2、通过对象名引用成员方法前提对象名已经存在,成员方法也已经存在示例MethodRerObject obj = new MethodRerObject();printString(obj::printUpperCaseString);//创建了一个对象,然后通过方法引原创 2020-06-01 21:53:18 · 172 阅读 · 0 评论 -
java学习笔记(40)Stream流式编程
40、Stream流1、概述类似于流水线,流的数据源可以是集合数组等有两个特征:Pipelining:中间的操作都返回流对象本身内部迭代:流可以直接调迭代方法(foreach)2、获取Stream流的两种方式所有的Collection集合都可以通过stream默认方法获取流Stream接口的静态方法of可以获取数组对应的流3、stream流中的常用方法3.1、forEach方法使用forEach方法可以遍历流中的数据//获取Stream流 Stream<原创 2020-06-01 21:52:45 · 263 阅读 · 0 评论 -
java学习笔记(39)常用函数式接口
39、常用函数式接口1、概述有且只有一个抽象方法的接口可以避免性能浪费一般作为方法的参数和返回值使用lambda表达式有延迟加载的特性例如使用lambda表达式作为参数传递,只有满足条件才会调用方法,如果条件不满足,接口中的方法不会执行2、Consumer接口该接口是一个消费性接口,泛型指定什么类型就可以使用接口内的accept方法使用什么类型的数据2.1、andThen方法作用:需要两个Consumer接口,可以把两个Consumer接口组合到一起连接两个Consumer接口,谁在原创 2020-06-01 21:52:15 · 238 阅读 · 0 评论 -
java学习笔记(38)网络编程
38、网络编程使用Socket类下的方法进行服务端与用户端的设置1、客户端TCP通信的客户端,向服务器发送链接请求,给服务器发送数据关键名词Socket类:实现了客户端的套接字(两台机器的端点)套接字:包含一个流套接字并将其连接到指定主机上的指定端口2、Socket类2.1、客户端构造Socket(String host,int port)创建一个流套接字并将其连接到指定主机上的指定端口号参数String host:服务器的主机名称/IP地址int port:端口号成员原创 2020-06-01 21:51:45 · 131 阅读 · 0 评论 -
java学习笔记(37)打印流
37、打印流1、概述PrintStream位于IO包,继承了OutputStream,为其他输出流添加了功能,使他们能够更方便的打印各种数据值表示形式2、特点只负责数据输出,不负责读取不会抛出IO异常特有方法有print和println3、构造PrintStream(OutputStream out)//输出目的地是一个字节输出流PrintStream(File file)//目的地是一个文件PrintStream(String fileName)//目的地是一个文件路径4、原创 2020-05-26 11:15:14 · 116 阅读 · 0 评论 -
java学习笔记(36)序列化流
36、序列化流1、概述ObjectStream用于将对象以流的形式(字节流)保存到文件中(或从文件中读取对象)将对象存到文件中叫做对象的序列化,读取叫做反序列化2、ObjectOutputStreamObjectOutputStream继承了OutputStream对象的序列化流,用于把对象以流的形式写入到文件中保存2.1、构造ObjectOutputStream(OutputStream out)//创建写入指定 OutputStream 的 ObjectOutputStream。原创 2020-05-26 11:14:43 · 143 阅读 · 0 评论 -
java学习笔记(35)转换流
35、转换流1、概述是字符与字节的桥梁,将要写入/读取的字符编码成字节主要功能是可以指定字符集2、OutputStreamWriter字符通向字节的桥梁,将要写入流中的字符编码成字节2.1、构造OutputStreamWriter(OutputStream out) //创建使用默认字符编码的 OutputStreamWriter。OutputStreamWriter(OutputStream out, String charsetName) //创建使用指定字符集的 OutputSt原创 2020-05-26 11:13:55 · 154 阅读 · 0 评论 -
java学习笔记(34)缓冲流
34、缓冲流1、字节缓冲输出流BufferedOutputStream字节缓冲输出流继承了OutputStream1.1、构造BufferedOutputStream(OutputStream out)// 创建一个新的缓冲输出流,以将数据写入指定的底层输出流。BufferedOutputStream(OutputStream out, int size)// 创建一个新的缓冲输出流,以将具有指定缓冲区大小的数据写入指定的底层输出流。参数:OutputStream字节输出流 可以传原创 2020-05-26 11:13:20 · 133 阅读 · 0 评论 -
java学习笔记(32)IO字符流
32、IO字符流1、概述以字符形式传输数据,其他与字节流相似2、输入流ReaderReader是字符输入流的最顶层父类,抽象类方法:int read();//读取单个字符并返回int read(cahr[] cbuf);//一次读取多个字符,将字符读入数组2.1、常用子类FileReader类继承InputStream继承Reader类文件字符输入流构造FileReader(String Filename);FileReader(File file);参数读取文件的数据源原创 2020-05-26 11:12:18 · 175 阅读 · 0 评论 -
java学习笔记(31)IO字节流
31、IO字节流1、概述硬盘的输入输出流顶层四个父类输入流输出流字节流字节输入流InputStream字节输出流OuterStream字符流字符输入流Reader字符输出流Writer在电脑中,所有数据都是以字节的形式存储的2、输出流OutputStream输出流中定义了一些子类共性的成员方法 void close() 关闭此输出流并释放与此流有关的所有系统资源。void flush()刷新此输出流并强制写出所有缓冲的输出字节。void wr原创 2020-05-26 11:11:51 · 113 阅读 · 0 评论 -
java学习笔记(30)过滤器
30、过滤器1、概述过滤器是用来定义文件查找中过滤方法的接口在File中有两个和ListFiles重载的方法,传递的是过滤器2、方法File[] listFiles(FileFilter filter)方法接受一个过滤器,并按过滤器的定义过滤文件,返回的是抽象路径数组,这些路径名表示此抽象路径名表示的目录中满足指定过滤器的文件和目录3、接口FileFilter接口用来过滤文件抽...原创 2020-04-27 00:37:02 · 127 阅读 · 0 评论 -
java学习笔记(29)递归
29、递归1、概述递归是指当前方法调用自己的现象2、分类直接递归:方法直接调用自己间接递归:A方法调用B方法,B方法调用C方法,C方法调用A方法3、注意递归要有条件限定,保证递归可以停下来,否则会栈内存溢出递归次数太多也可能会栈内存溢出构造方法禁止递归4、使用前提当调用方法的时候,方法的主体不变,每次调用的参数不同,可以用递归...原创 2020-04-24 01:01:41 · 96 阅读 · 0 评论 -
java学习笔记(28)File类
28、File类1、概述File类是一个封装了文件和文件夹的类,可以使用file类对文件夹和文件进行操作file类与系统无关,在任何系统下都可正常运作2、成员变量file类有四个常用的成员变量路径分隔符static String pathSeparatorstatic char pathSeparator与系统相关的路径分隔符,Windows下为分号第一种为字符串格式,第二...原创 2020-04-17 15:14:09 · 145 阅读 · 0 评论 -
java学习笔记(27)Lambda表达式
1、函数式编程思想只要能获取到结果,谁去做的、怎么做的都不重要,只重视结果,不重视过程2、lambda的标准格式由三部分组成参数,箭头,代码格式(参数列表) -> {重写方法的代码}解释():接口中抽象方法的参数列表,没有参数就空着,多参数用逗号分隔-> : 传递的意思,把参数传递给方法{}: 重写接口的抽象方法3、lambda表达式用途用于替换使用接口时创...原创 2020-04-14 18:41:47 · 115 阅读 · 0 评论 -
java学习笔记(26)线程池
1、概述多线程并发时,频繁的创建线程和销毁线程会降低系统效率线程池可以可以使线程执行完不销毁,继续执行别的任务线程池是一个容器,可以使用集合最好使用LinkedList<Thread>集合(可以用别的)2、实现思路但程序第一次启动时,创建多个线程保存到集合中,当我们要使用线程时,可以从集合中取出来使用使用remove直接移除,因为线程只能被一个任务使用Thread t ...原创 2020-04-12 00:43:04 · 107 阅读 · 0 评论 -
java学习笔记(25)等待唤醒
1、线程状态计时等待状态锁阻塞状态无限等待状态(调用wait方法等待,等notify方法唤醒)2、睡眠和唤醒的代码实现/** * 等待唤醒机制:线程之间的通信 * 模拟顾客和老板之间的交易过程 * 创建一个顾客线程,告知老板要的包子种类,然后等待唤醒 * 老板花五秒完成 * *注意: * 顾客和老板线程必须使用同步代码块,保证等待和唤...原创 2020-04-10 16:08:18 · 109 阅读 · 0 评论 -
java学习笔记(24)java线程安全
1、线程安全问题概述多个线程在调用同一共享资源时可能会出现访问到不存在的数据或重复访问某个数据的问题2、解决方法一、同步代码块格式synchronized(锁对象){ 可能出问题的代码};锁对象可以是任意对象,需在synchronized代码块外定义,执行代码块内容时会先获取锁对象,但锁对象只有一个,后来的线程就会进入等待状态。即可保证共享资源中只有一个线程在访问3、解决方法二...原创 2020-04-09 18:03:14 · 81 阅读 · 0 评论 -
java学习笔记(二十三)线程实现
1、并发与并行并发:指多个事件在同一个时间段内发生(交替)并行:值多个时间在同一时刻发生(同时)2、进程概念进入到内存的程序叫进程3、线程概念线程属于进程,是进程的一个执行单元4、线程调度1、分时调度2、抢占式调度(java使用此种)5、主线程主线程即main方法的线程单线程程序:java程序中只有一个线程执行从main开始的程序,从上到下依次执行6、创建多线程,使用T...原创 2020-04-03 23:16:24 · 90 阅读 · 1 评论 -
java学习笔记(二十二)异常
1、异常概念指程序在执行过程中出现的非正常情况,会导致JVM的非正常停止,异常本来是一个类,产生异常就是创建异常对象并抛出。2、异常体系最高父类throwable,子类error和exception3、异常分类运行期异常、编译期异常和错误运行期异常可以不处理,默认让JVM终止程序编译期异常必须处理错误无法解决,必须修改代码4、throw/throws关键字异常处理常用到5个关...原创 2020-03-27 09:22:07 · 136 阅读 · 0 评论 -
java学习笔记(二十一)map集合
1、概述双列集合,是一个接口,有两个泛型,将键映射到值特点: 1、双列集合,一个元素包含两个值(键值) 2、Map集合中的元素,键和值的数据类型可以相同也可以不同 3、K不允许重复,Key与value一一对应2、常用子类2.1、HashMap集合实现了Map接口特点: 底层是哈希表,查询速度快 是无序集合2.2、LinkedHashMap继承了HashMap集合...原创 2020-03-24 17:14:35 · 103 阅读 · 0 评论 -
java学习笔记(二十)Collections集合工具类
个人笔记,仅供参考1、Collections是一个操作数组的工具类2、addALL方法同时添加多个元素到集合中,静态方法Collections.addAll(list,"a","b","c","d","e");第一个参数为列表,后面的参数是要添加的元素3、shuffle方法打乱集合的顺序Collections.shuffle(list);参数方式集合的名字4、sort方法...原创 2020-03-23 10:34:48 · 122 阅读 · 0 评论 -
java学习笔记(十九)set集合
个人笔记,仅供参考1、概述set接口是Collection下的一个子接口,不允许重复,没有索引,不能使用普通for循环遍历2、HashSet集合实现了set接口,是一个无序集合,底层是哈希表,查询速度快2.1、使用HashSet//创建对象,多态Set<Integer> set = new HashSet<>();//使用add方法set.add(1);...原创 2020-03-22 22:19:47 · 152 阅读 · 0 评论 -
java学习笔记(十八)list集合
个人笔记,仅供参考1、概述list接口继承了Collection,2、特点1、有序集合,存储元素和取出元素的顺序是一致的2、有索引3、允许存储重复的元素3、特有方法void add(int index, E element)在列表的指定位置插入指定元素E set(int index, E element)用指定元素替换列表中指定位置的元素E get(int index)返回列表...原创 2020-03-21 21:02:31 · 425 阅读 · 0 评论 -
java学习笔记(十七)数据结构
个人笔记,仅供参考1、栈先进后出,后进先出。入口和出口在同一侧2、队列先进先出,入口出口不同侧,队尾进入,队首出来3、数组查询块,增删慢增删必须要创建新数组4、链表查询慢,增删块地址不是连续的,每次都必须从头开始查链表结构增加或删除对整体结构没影响5、红黑树树型结构二叉树:每个节点的分支不超过两个,排序树:在二叉树的基础上,元素有大小顺序左小右大平衡树:左右分支数...原创 2020-03-21 11:06:27 · 91 阅读 · 0 评论 -
Java学习笔记(十六)泛型
泛型原创 2020-03-20 22:27:59 · 79 阅读 · 0 评论 -
java学习笔记(十五)Collection集合
Collection集合原创 2020-03-18 18:04:23 · 121 阅读 · 0 评论 -
java学习笔记(十四)常用API第二部分
API原创 2020-03-17 12:13:28 · 106 阅读 · 0 评论 -
java学习笔记(十三)内部类
java内部类原创 2020-03-16 21:23:10 · 74 阅读 · 0 评论 -
Java学习笔记(十二)final关键字和权限修饰符
java final关键字原创 2020-03-13 16:52:02 · 87 阅读 · 0 评论 -
java学习笔记(十一)多态
个人笔记,仅供参考1、多态概述面向对象三大特征之一,即多种形态,例如一个人可以有学生形态,但同时也有人类形态2、格式与使用代码当中体现多态性,其实就是一句话,父类引用指向子类对象格式: 父类名称 对象名 = new 子类名称(); 或者 接口名称 对象名 = new 实现类名称3、成员变量使用特点类似于在继承中1、直接通过对象名称访问,等号左侧的2、间接通过成员方法访...原创 2020-03-12 08:54:54 · 81 阅读 · 0 评论 -
java学习笔记(十)接口
java 接口原创 2020-03-11 09:18:10 · 95 阅读 · 0 评论 -
Java学习笔记(九)抽象类
抽象类概念原创 2020-03-10 09:38:30 · 105 阅读 · 0 评论 -
java学习笔记(八)继承
继承原创 2020-03-09 08:56:00 · 192 阅读 · 0 评论