
Java基础
文章平均质量分 65
java基础
故园风雨
通俗易懂的学习Java
展开
-
JDK1.8新特性之Optional容器类
实例1:在项目中生成证书时,存在三级证书,三级证书需要二级证书生成的结果而生成,二级证书需要一级证书的结果进行生成,所以在返回一级二级证书时使用Optional容器来进行返回,再对返回的对象进行校验可以优雅的避免以为一级证书返回值为空的空指针问题。get():获取Optional对象的内容,如果为空则抛出NoSuchElementException异常。Optional类是Java提供的一个可以为null的容器对象,提供的方法可以有效避免空指针问题。empty():提供一个内容为空的Optional对象。原创 2024-07-17 15:05:52 · 429 阅读 · 0 评论 -
14.内置对象、作用域对象、jsp动态标签、分页查询
注意点:1.out 向页面写入内容时,带缓冲区,建议写完之后进行刷新2.response.getWriter()不带缓冲区语法:${内置对象Scope.键} 如:${sessionScope.uid}四大内置对象作用域范围pageContext原创 2022-06-07 21:48:10 · 248 阅读 · 0 评论 -
13.ServletConfig、ServletContext、转发重定向、jsp、jstl表达式
ServletConfig是由Tomcat的容器来创建 主要用来获取Servlet配置信息 ServletConfig只能获取到当前Servlet的配置信息由Tomcat容器创建,ServletContext是上下文对象 用来获取web项目全局的配置转发:用于跳转页面,以及页面之间传递参数语法:req.getRequestDispather(“转发的地址”).forward(req,resp);注意点:必须加上forward(req,resp)转发可以跳转到页面也可以跳转到Servlet重定向:用于跳转页面原创 2022-06-07 21:19:50 · 194 阅读 · 0 评论 -
12.响应、请求、查看图片、下载图片、上传文件到服务器
ServletResponse服务器给客户端一个回应Tomcat自动创建,内置对象,只管使用响应:响应头、响应行、响应体在页面中按f12 Ctrl+R协议就是传输数据的一种规范,必须遵守这种规范,才能进行有效交流超文本传输协议是一种简单点请求-响应协议,他通常运行在tcp之上Http 协议+SSl整数、SSL证书,保证数据传输安全性,传输数据会进行加密4XX请求支援找不到原因:1.访问的资源不存在,页面或者是Servlet路径错误2.项目没有部署成功,out文件夹下是否有访问的资源3.WEB-INF的资源是原创 2022-06-05 15:18:14 · 855 阅读 · 0 评论 -
09.jdbc
事务是最小的原子单元,执行一条或者是多条sql语句的时候,要么同时执行成功,要么同时执行失败1.A:原子性:事务是最小原子单位,不能在进行分割2.C:一致性:要么提交前的状态,要么是提交后的状态,同时执行成功或者是失败3.I:隔离性:每一个事务是相互隔离,互不影响4.D:持久性:一旦commit提交之后数据将永久保存到数据中视图是指计算机数据库中虚拟表,其内容由查询定义,同真实的表一样1.简单性:看到的就是需要的2.安全性:通过视图用户只能查询和修改他们所能看到的数据create view 视图名 as 查原创 2022-06-05 14:27:40 · 3271 阅读 · 0 评论 -
10.连接池、dbutils
一、java代码操作事物con.setAutoCommit(); 设置为false表示为手动提交 con.setAutoCommit(false);con.commit(); 提交事务con.rollback(); 回滚二、连接池可以以线程池那种思维来看待连接池2.1常用的连接池1.DBCP:服务器Tomcat 就是使用DBCP连接池2.c3p0:spring 全家桶,大部分使用c3p0连接池,稳定3.druid:阿里的连接池,高并发2.2DCBP步骤1.导原创 2022-05-30 22:53:16 · 156 阅读 · 0 评论 -
27.注解
1.简介注解:用于对代码进行解释说明,提供给jvm来识别一种代码级别的说明。它是JDK1.5及以后版本引入的一个特性。作用:编写文档、代码分析、编译检查2.jdk提供的注解@Override 用于检查是否重写方法@Deprecated 声明过时的方法 但还可以使用@SuppressWarning 用于压制黄色警告线3.自定义注解1.格式:元注解public @interface MyAnnotation{}2.本质:就是一个接口3.注解中原创 2022-05-19 09:15:27 · 123 阅读 · 0 评论 -
26.jdk8接口特性、lambda表达式、函数型接口、Stream
一、jdk8与jdk9接口新特性1.1简介在jdk1.8之后 接口不仅可以有抽象的方法,还可以有其他方法增加的方法 jdk8:默认的方法和静态的方法 jdk9:私有的方法3.影响:接口中可以有其他的成员方法 接口与抽象类的差距缩小 接口多继承多实现 使用接口是趋势1.2默认的方法1.使用default修饰的方法就是默认的方法2.语法:访问修饰符 default 方返回值类型 方法的名称(参数列表){方法体...原创 2022-05-16 19:23:28 · 211 阅读 · 0 评论 -
25.反射、Junit、获取Class对象、获取构造方法、获取成员方法、获取成员变量、案例
一、Junit1.Junit主要用于做局部测试,局部测试 局部测试可以快速帮助查找bug2.测试分类:黑盒测试与白盒测试3.黑盒测试:功能测试(按照需求的文档来进行测试)与接口测试 比较简单4.白盒测试:测开编写自动化的脚本5.Junit使用步骤定义一个方法 (方法修饰符public 返回值只能使用void)在方法上加上注解@Test二、反射...原创 2022-05-13 21:20:43 · 365 阅读 · 0 评论 -
24、多线程、线程中常用的方法、多线程中生产者与消费者、线程第三种创建方式、枚举、线程池、单例设计模式、定时器
一、线程的常用方法二、Object提供的操作线程的方法三、多线程生产者与消费者四、多线程的第三种创建方式五、枚举1.简介1.枚举就是用于表示一些固定的值(常量) 可以用枚举来表示,枚举项是对象2.定义枚举类:访问修饰符 enum 枚举类的名称(){ 枚举项}3.特点:每个枚举类都是Enum的子类每个枚举项都是一个对象枚举中可以定义成员变量枚举类只能有私有的构造方法,默认的就是私有的构造枚举类中可以有抽象的方法,但是每一个枚举...原创 2022-05-12 21:18:15 · 77 阅读 · 0 评论 -
23.线程
一、线程1.并发与并行并发:在同一时间段 单核CPU交替的执行并行:在同一时刻 多核CPU同时的执行2.进程与线程进程:运行在内存中存储线程:通向CPU的执行的路径 单线程和多线程3.主线程4.第一种创建线程的方式继承Thread1.定义一个类继承Thread2.重写run方法3.实例化线程对象4.开启线程 调用start方法5.线程调度方式线程调度方式:分配式调度与抢占式调度java就是典型的抢占式调度6.抢占式调度原因7.线程.原创 2022-05-11 21:15:10 · 120 阅读 · 0 评论 -
22.高效字符流、对象流、方法中多参数、Properties、工具类的封装
一、高效流(缓冲流)字符都是将字符流传递进高效流中进行封装1.BufferedReader1.1简介从字符输入流中读取文本,缓冲各个字符,从而实现字符、数组和行的高效读取可以指定缓冲区的大小,或者可使用默认的大小。大多数情况下,默认值就足够大了1.2构造方法public BufferedReader(Readerin) 创建一个使用默认大小输入缓冲区的缓冲字符输入流1.3常用的方法public String readLine() 读取一个文本行2.Buf.原创 2022-05-10 19:11:27 · 185 阅读 · 0 评论 -
21.InputStream、高效字节流、字符流、转换流(InputStreamReader、OutPutStreamWriter)
一、InputStream1.1.简介字节输入流的超类1.2常用方法close、read1.3子类FileInputStreamObjectInputStream1.4FileInputStream1.4.1简介1.4.2构造方法FileInputStream(String path)FileInputStream(File file)1.4.3构造方法的两件事①实例化FileInputStream对象②将FileInputStream指向磁盘原创 2022-05-10 00:18:13 · 1137 阅读 · 0 评论 -
20.File、递归、IO流OutputStream
一、File1.简介1.概念:文件和目录(文件夹)路径名的抽象表示形式2.路径:绝对路径、相对路径2.构造方法File (String pathname) 根据一个路径得到File对象File(String parent,String child)根据目录和一个子文件/目录得到File对象File(File parent,String child)根据一个父File对象和子文件/目录得到File对象3.常用的方法(1)创建文件或者文件夹public boolean原创 2022-05-07 21:18:36 · 150 阅读 · 0 评论 -
19.Map、泛型
一、HashMap1.简介特点: 数据结构基于哈希表 允许使用null值和null键 此实现不同步,在多线程中不安全 默认容量是162.Has和Map和HashSet比较相同点:都是以hash表结构来进行存储不同点:HashMap数据结构只针对键HashSet底层也是使用HashMap来进行存储 只能用于HashMap数据结构二、LinkedHashMap简介和LinkedHashSet类似...原创 2022-05-07 00:09:30 · 1102 阅读 · 0 评论 -
18.Set
一、Set集合1.简介1.Set集合是Collection的子类2. 特点:无序 没有索引 存取顺序不一致唯一 不能重复3.实现类:HashSet TreeSet2.Set集合遍历方法1.增强for循环package com.qf.stu.demo3;import java.util.HashSet;import java.util.Set;public class Test { public static void main(String[] a原创 2022-05-05 20:31:14 · 131 阅读 · 0 评论 -
17.集合
一、集合1.简介:用来存储数据的容器2.和数组的比较:1.数组的长度是固定的 集合长度是可变的2.数组既可以存储基本数据类型又可以存储引用数据类型 集合只能存储引用数据类型3.集合的分类单列集合:集合中的每一个元素都是单独的单元多列集合:集合中的元素都是以组为单位 一键值对来进行存储二、Collection集合1.简介单列集合的顶级接口提供更具体的子接口 两个子接口:Set List实现类:ArrayList L...原创 2022-05-04 00:08:56 · 86 阅读 · 0 评论 -
16.异常
一、异常1.程序不执行正常的流程 或者发生错误2.异常的体系Throwable:所有异常的直接父类或者间接父类,必须是它的子类或者是自身的异常才需要处理Error:表示非常严重的异常一般都由jvm抛出的异常...原创 2022-04-28 20:14:38 · 71 阅读 · 0 评论 -
15.System、Date、Calendar、SimpleDateFormat、Scanner、Arrays
一、System1.System 类包含一些有用的类字段和方法。它不能被实例化,在 System 类提供的设施中,有标准输入、标准输出和错误输出流2.字段摘要2.1public static final PrintStream err“标准”错误输出流。此流已打开并准备接受输出数据。2.2public static final InputStream in“标准”输入流,对应于键盘输入(关联键盘)2.3public static final PrintStre原创 2022-04-27 17:39:08 · 368 阅读 · 0 评论 -
14.String转换型方法、字符串比较的规则、StringBuffer(StringBuilder)、包装类、Math
一、String转换型方法方法名称 方法描述 public String concat(String str) 在字符串末尾进行拼接 public char[] toCharArray() 将字符串转换为字符数组 public byte[] getBytes() 将字符串转换为字节数组 public String replaceAll(String regex,String replaement) 替换此字符串中匹配的字符串为指定的字符串 public.原创 2022-04-26 20:14:46 · 259 阅读 · 0 评论 -
13.项目jar管理、API、Object类、
一、项目jar管理1.jar 打包原因:需要访问另一个项目资源,所以要进行项目打包2.项目打包:生成jar ,在需要的模块中创建lib文件夹,将jar复制到lib文件中,添加项目依赖删除jar也需要先将项目依赖删除二、API1.概念:API应用程序接口编程, 其实就是提供查看jdk的相关的类以及接口的文档2.作用:①jdk提供一些常用的类与接口方法②通过文档可以快速查找需要的指定的类以及方法...原创 2022-04-25 20:08:37 · 120 阅读 · 0 评论 -
12.抽象类、接口、实现类、接口之间关系、代码块、内部类
一、抽象类1.抽象方法原创 2022-04-25 00:09:03 · 1528 阅读 · 0 评论 -
11.多态
一、多态1.概念:一个对象有多种形态,必须是在接口或者继承中实现语法:父类类名 对象名=new 子类类名()2.多态访问成员变量特点编译看左边,运行看左边3.多态访问成员方法的特点编译看左边,运行看右边以以下代码为例,可以看出编译时无法编译xiaoming.numZi和xiaoming.showZi(),子类独有的资源,在运行后打印出来的num=100,show()方法打印出来的是子类中的show()中的语句代码-父类package stu.qf.Demo1;.原创 2022-04-23 15:50:27 · 218 阅读 · 0 评论 -
06.数组
一、数组的概念1.数组:用于存储一组相同数据类型的容器2.数组的特点:a.存储的数据类型必须是同一数据类型b.数组的长度是固定的二、数组动态初始化1.数组动态初始化:创建的时候不对它进行赋值(只在内存中开辟空间)2.语法:数组的数据类型[] 数组名称=new 数据类型[数组长度]; 例如:int[] arrays=new int[];3.解释:[]表示的是一个一维数组 [][]表示的是一个二维数组数组的名称表示栈内存的引用 数组的内存地址值赋值是把堆内存的地址..原创 2022-04-17 22:41:40 · 117 阅读 · 0 评论 -
05.方法(函数)
1.概念一段特定功能的代码。 在开发中需要执行多次,就可以用大括号进行包裹并且给这段代码取名称,就可以通过名称来访问这个方法。2.定义方法:访问修饰符 返回值类型 方法名称(参数列表) {方法体;return 返回值}3.案例:计算两个数之和public class Test1{public static void main(String[] args) { int num1=10; int num2=20; int sum=Sum(num1,num2)原创 2022-04-15 21:58:48 · 223 阅读 · 0 评论 -
04.循环
一、for循环1.语法:for(初始化语句;循环条件判断;循环变量改变){循环操作}2.执行流程:初始化语句==>循环条件判断==>循环操作==>循环变量的改变==>循环条件判断==>循环操作==>循环变量的改变.......二、while循环语法:while(循环条件判断){循环操作;循环变量的改变;}三、do while循环语法:do{循环操作}while(循环条件判断);说明:1.do while循环至少执行一次原创 2022-04-14 21:46:33 · 68 阅读 · 0 评论 -
03.运算符和if选择结构
一、运算符1.算术运算符+ - * / % ++ --2.赋值运算符= += -= *= /=%=3.关系运算符< > == !=<= >=4.逻辑运算符&& || !5.三目运算符关系式1?关系式2:关系式3二、进制1.进制2.原码、反码、补码3.位运算符<< >> >>>...原创 2022-04-13 21:55:40 · 86 阅读 · 0 评论 -
02.环境变量配置及Java中的数据类型
一、环境变量的配置配置好环境变量可以在任意目录下使用配置好的目录,来运行Java。具体配置方法见附件二、idea的安装及破解具体见附件idea的快捷键1.psvm 提示主方法2.sout 提示打印语句3.Ctrl+y 删除当前行4.Ctrl+d 向下复制当前行三、注释、关键字及标识符1.单行注释:// Ctrl+/2.多行注释:/*注释内容*/ Ctrl+shift+/3.文档注释:/**注解的内容*/保留关键字 goto const类名的定义:a原创 2022-04-12 20:21:39 · 386 阅读 · 0 评论 -
01.Java介绍及环境搭建
一、Java1.Java语言Java是一门面向对象的编程语言,Java具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特点。2.Java发展Java之父:詹姆斯.高斯林起源于1994年,由于c和c++比较复杂,难以理解,于是出现了Java的前身oak。目前比较稳定的jdk版本jdk8和jdk9,本次安装的是是jdk8版本。3.Java平台体系JAVAME 最小的版本,主要用来做开发移动端JAVASE 基础的版本,提供一些基础的语法 用于一原创 2022-04-11 17:06:41 · 3051 阅读 · 0 评论 -
10.继承、this和super关键字、方法重写、方法修饰符、final
一、继承1.继承概念至少有两个类,一个父类一个子类,满足is a的关系,父类不可以获取到子类的资源,子类可以获取到父类的资源。2.继承注意点2.1子类不能继承父类的私有资源用private修饰的资源都只能在本类进行访问2.2子类不能继承父类的构造方法构造方法必须是和类名一样的,子类父类的类名不一样但是可以进行调用,使用关键字super2.3Java中继承是单继承的,最大的父类是Object3.继承中访问成员变量的特点3.1如果子类和父类的变量名重名时,优先访问子类原创 2022-04-21 23:10:36 · 116 阅读 · 0 评论 -
09.成员变量与局部变量、封装、构造方法、静态
一、成员变量与局部变量在4-12就有说到局部变量,对于局部变量的一些认知http://t.csdn.cn/lttF5http://t.csdn.cn/lttF5成员变量与局部变量有许多不同1.定义位置不同成员变量定义在类内方法之外,局部变量定义在方法之类也只作用于方法之中2.生命周期成员变量随着对象加载而加载,随着对象销毁而销毁局部变量随着方法加载而加载,随着方法销毁而销毁3.存储位置成员变量存储在堆内存中,局部变量存储在栈内存之中4.默认值局部变量没有默认值原创 2022-04-20 22:26:51 · 78 阅读 · 0 评论 -
08.面向对象
一、面向对象1.Java是面向对象进行编程,在Java开发中 一切都可以使用对象来进行描述2.3.面向对象好处:4.面向对象的三大特征:二、类原创 2022-04-19 22:11:15 · 203 阅读 · 0 评论 -
07.数组操作-冒泡排序、插入元素
1.冒泡排序法冒泡排序法两两进行比较,将较小的数换到前面这个位置,最后换下来的效果是把最大的数换到了最后一位。如图所以下一轮比较的次数要比上一轮比较的次数少一次,相当于把最大的数冒泡到最右边。import java.util.Arrays;public class Test3 { public static void main(String[] args) { int[] arrays={38,3,5,44,15,36,26,27,2,46,4,19,47,48原创 2022-04-18 22:29:30 · 216 阅读 · 0 评论