Java-basic
zezea
这个作者很懒,什么都没留下…
展开
-
JDBCTemplate
JDBCTemplateSpring框架对JDBC的简单封装。提供了一个JDBCTemplate对象简化JDBC的开发步骤:导入jar包创建JdbcTemplate对象。依赖于数据源DataSource* JdbcTemplate template = new JdbcTemplate(ds);调用JdbcTemplate的方法来完成CRUD的操作* update():执行DML语...原创 2020-01-30 11:10:07 · 171 阅读 · 0 评论 -
数据库连接池
数据库连接池概念:其实就是一个容器(集合),存放数据库连接的容器。当系统初始化好后,容器被创建,容器中会申请一些连接对象,当用户来访问数据库时,从容器中获取连接对象,用户访问完之后,会将连接对象归还给容器。好处:节约资源用户访问高效实现:标准接口:DataSource javax.sql包下的1. 方法:* 获取连接:getConnection()* 归还连接:Con...原创 2020-01-30 11:02:44 · 111 阅读 · 0 评论 -
JDBC对象、方法及事务控制
JDBC概念:Java DataBase Connectivity Java 数据库连接, Java语言操作数据库* JDBC本质:其实是官方(sun公司)定义的一套操作所有关系型数据库的规则,即接口。各个数据库厂商去实现这套接口,提供数据库驱动jar包。我们可以使用这套接口(JDBC)编程,真正执行的代码是驱动jar包中的实现类。//简单使用//1. 导入驱动jar包 //2.注...原创 2020-01-29 18:17:26 · 240 阅读 · 0 评论 -
MySQL管理用户与授权,附忘记密码的处理措施(DCL)
DCL:管理用户,授权管理用户添加用户:语法:CREATE USER ‘用户名’@‘主机名’ IDENTIFIED BY ‘密码’;删除用户:语法:DROP USER ‘用户名’@‘主机名’;修改用户密码:UPDATE USER SET PASSWORD = PASSWORD(‘新密码’) WHERE USER = ‘用户名’;UPDATE USER SET PASSWORD ...原创 2020-01-28 11:42:13 · 116 阅读 · 0 评论 -
MySQL事务及四大特征
MySQL事务及四大特征事务的基本介绍概念:如果一个包含多个步骤的业务操作,被事务管理,那么这些操作要么同时成功,要么同时失败。操作:1. 开启事务: start transaction;2. 回滚:rollback;3. 提交:commit;CREATE TABLE account ( id INT PRIMARY KEY AUTO_INCREMENT, NAME VAR...原创 2020-01-28 11:34:15 · 227 阅读 · 0 评论 -
MySQL多表查询
MySQL多表查询笛卡尔积:* 有两个集合A,B .取这两个集合的所有组成情况。* 要完成多表查询,需要消除无用的数据(当两个以上的表联合查询时,这些表会以笛卡尔积的形式组合起来,变成一张大表,然后在这张大表中添加限定条件,来筛选无用信息和不符合要求的信息,最后查询出想要的列结果,这就是多表查询的原理)分类内连接查询:隐式内连接:使用where条件消除无用数据显式内连接:* 语...原创 2020-01-28 11:27:50 · 116 阅读 · 0 评论 -
数据库的设计及备份
数据库的设计多表之间的关系分类:1. 一对一(了解):* 如:人和身份证* 分析:一个人只有一个身份证,一个身份证只能对应一个人2. 一对多(多对一):* 如:部门和员工* 分析:一个部门有多个员工,一个员工只能对应一个部门3. 多对多:* 如:学生和课程* 分析:一个学生可以选择很多门课程,一个课程也可以被很多学生选择实现关系:1. 一对多(多对一):* 如:部门和...原创 2020-01-26 18:52:31 · 270 阅读 · 0 评论 -
MySQL约束
MySQL约束概念: 对表中的数据进行限定,保证数据的正确性、有效性和完整性。分类:1. 主键约束:primary key2. 非空约束:not null3. 唯一约束:unique4. 外键约束:foreign key非空约束:not null,值不能为null1. 创建表时添加约束CREATE TABLE stu(id INT,NAME VARCHAR(20)...原创 2020-01-26 18:44:18 · 73 阅读 · 0 评论 -
MySQL的一些查漏补缺
MySQL的一些查漏补缺MySQL的卸载去mysql的安装目录找到my.ini 配置文件* 复制 datadir=“C:/ProgramData/MySQL/MySQL Server 5.5/Data/”卸载MySQL删除C:/ProgramData目录下的MySQL文件夹。MySQL服务启动方式手动。cmd–> services.msc 打开服务的窗口使用管理员打开...原创 2020-01-24 19:10:18 · 132 阅读 · 0 评论 -
使用注解生成文档
步骤如下:1.java文件写法(去掉包名):/*** 注解Javadoc演示** @author Java* @version 1.0* @since 1.5*/public class Annotation { /** * 计算两数的和 * @param a * @param b * @return * */ pub...原创 2020-01-15 12:06:11 · 519 阅读 · 0 评论 -
注解——对元素进行说明
定义定义:注解(Annotation),也叫元数据。一种代码级别的说明。它是JDK1.5及以后版本引入的一个特性,与类、接口、枚举是在同一个层次。它可以声明在包、类、字段、方法、局部变量、方法参数等的前面,用来对这些元素进行说明,注释。概念描述:* JDK1.5之后的新特性* 说明程序的* 使用注解:@注解名称作用分类:①编写文档:通过代码里标识的注解生成文档【生成文档doc文档】...原创 2020-01-15 11:55:44 · 316 阅读 · 0 评论 -
反射——框架设计的灵魂
反射——框架设计的灵魂* 框架:半成品软件。可以在框架的基础上进行软件开发,简化编码* 反射:将类的各个组成部分封装为其他对象,这就是反射机制 * 好处: 1. 可以在程序运行过程中,操作这些对象。 2. 可以解耦,提高程序的可扩展性。我们编写的java代码在计算机中会经历三个阶段:当我们完成一个类的编写,点击运行时,Java代码经历了如下几个过程:1.编译器会把“类名.j...原创 2020-01-15 11:11:17 · 146 阅读 · 0 评论 -
Junit单元测试
Junit单元测试测试分类: 1. 黑盒测试:不需要写代码,给输入值,看程序是否能够输出期望的值。 2. 白盒测试:需要写代码的。关注程序具体的执行流程。Junit使用:白盒测试步骤: 1. 定义一个测试类(测试用例) * 测试类名:被测试的类名Test CalculatorTest * 包名:xxx.xxx.xx.test(与被测试类的包同级) cn.j...原创 2020-01-15 10:02:13 · 107 阅读 · 0 评论 -
Stream流及常用方法
Stream流及常用方法Stream流java.util.stream.Stream 是Java 8新加入的最常用的流接口。(这并不是一个函数式接口。)特点:1.Stream流是一个集合元素的函数模型,其本身并不存储任何元素或地址值2.Stream流是JDK1.8之后出现的,具有更优雅的书写方式。3.中间操作都会返回流对象本身,这样多个操作可以串联成一个管道。可以对操作进行优化,比如延...原创 2020-01-13 17:37:50 · 6068 阅读 · 0 评论 -
Java1.8新特性方法引用
Java1.8新特性方法引用简述方法引用(::)是JDK1.8的新特性:可以使用方法引用来优化Lambda表达式,(我觉得Lambda已经是很简化的格式了,但是这个玩意把Lambda都简化了,太牛掰,初期理解可能有难度,但是习惯了是真的爽)如下格式:new Object() 可以简写为 Object::new(就是把new放后头了,参数自动传递了)Object.method(a,b) 可...原创 2020-01-13 17:20:52 · 315 阅读 · 0 评论 -
函数式接口及常用接口
函数式接口函数式接口的优点函数式接口:有且只有一个抽象方法的接口,接口中可以有其他方法(静态,默认,私有),@FunctionalInterface此注解可以用于检测是否是函数式接口。函数式接口可以作为方法的参数和返回值类型,这里就不在举例说明。函数式接口的优点:1.函数式接口可以使用Lambda表达式,书写更简洁。2.函数式接口可以看成匿名内部类的“语法糖”,但是底层实现不一样,使用匿...原创 2020-01-12 19:44:29 · 431 阅读 · 0 评论 -
网络编程——模拟服务器与客户端案例
网络编程软件结构C/S结构 :全称为Client/Server结构,是指客户端和服务器结构。常见程序有QQ、迅雷等软件。B/S结构 :全称为Browser/Server结构,是指浏览器和服务器结构。常见浏览器有谷歌、火狐等。网络通信协议网络通信协议:通信协议是对计算机必须遵守的规则,只有遵守这些规则,计算机之间才能进行通信。这就 好比在道路中行驶的汽车一定要遵守交通规则一样,协议中对数据...原创 2020-01-11 21:42:56 · 694 阅读 · 0 评论 -
打印流——便捷的输出方式
打印流——便捷的输出方式java.io.PrintStream 打印流,该类能够方便地打印各种数据类型的值,是一种便捷的输出方式。特点:1.只负责数据输出,不负责数据读取2.永远不会抛出异常3.特有的方法:print println构造方法:public PrintStream(String fileName) : 输出目的地是一个文件。public PrintStream(Out...原创 2020-01-10 15:56:24 · 231 阅读 · 0 评论 -
序列化流——用于class文件的IO
序列化流——用于class文件的IO序列化流是对对象的读取与写出。Java 提供的序列化机制,用一个字节序列可以表示一个对象,该字节序列包含该 对象的数据 、 对象的 类型 和 对象中存储的属性 等信息。字节序列写出到文件之后,相当于文件中持久保存了一个对象的信息。 反之,该字节序列还可以从文件中读取回来,重构对象,对它进行反序列化。 对象的数据 、 对象的类型 和 对象中 存储的数据 信息,都...原创 2020-01-10 15:54:09 · 320 阅读 · 0 评论 -
转换流——自定义编码格式的OI流
转换流——自定义编码格式的OI流FileReader解码、FileWriter编码时只能只能查询默认码表UTF-8转换流 java.io.InputStreamReader ,是Reader的子类,是从字节流到字符流的桥梁。它读取字节,并使用指定 的字符集将其解码为字符。它的字符集可以由名称指定,也可以接受平台的默认字符集。字符转换输入流构造方法InputStreamReader(Inp...原创 2020-01-10 15:47:45 · 258 阅读 · 0 评论 -
缓冲流——更快的IO流
缓冲流——更快的IO流缓冲流:分类:字节缓冲输入输出流,字符缓冲输入输出流。原理:在创建流对象时,会创建一个内置的默认大小的缓冲区数组,通过缓冲区读写,减少系统IO次数,从而提高读写效率。字节缓冲输出流构造方法:BufferedOutputStream(OutputStream out)BufferedOutputStream(OutputStream out,int size)in...原创 2020-01-10 15:15:26 · 274 阅读 · 0 评论 -
IO流、字节输入输出流、字符输入输出流
IO流、字节输入输出流、字符输入输出流IO概述I:inputO:output流:数据传输(字符、字节)IO根据数据的流向分为输入流、输出流(以内存为主体,数据流向硬盘为内存输出,数据流向内存为内存输入。)IO主要执行的操作为read-读取、write-写出(以内存为主体,读取是内存读取硬盘数据,写出是内存写出数据到硬盘)。根据数据类型分为:字符流,字节流输入流输出流...原创 2020-01-09 10:02:42 · 211 阅读 · 0 评论 -
File类
File类简介java.io.File类是文件,和目录路径名的抽象表示,主要用于文件和目录的创建、查找和删除等操作。文件:file目录/文件夹:directory路径:path,其中路径分为绝对路径和相对路径。绝对路径:是一个完整的路径,以盘符开始的路径。C:\a.txt、 D:\demo\b.txt相对路径:是一个简化的路径,以当前project的根目录为起点。a.txt、…\b....原创 2020-01-08 14:16:00 · 215 阅读 · 0 评论 -
函数式编程思想——Lambda表达式
函数式编程思想——Lambda表达式Lambda是JDK1.8之后的新特性,传统的编程思想是面向对象的,即想调用一个方法时,需要创建一个对象,再调用这个对象中的方法。而函数式编程只要结果正确,而不在意对象是谁,方法名是谁。面向对象的编程会产生大量的冗余代码(实现类对象,重写方法等),而且这些冗余代码是必要的。而函数式编程思想,则大大减少了冗余代码。Lambda表达式就是函数式编程思想的具体表现形...原创 2020-01-07 13:43:03 · 199 阅读 · 0 评论 -
ThreadPool线程池
ThreadPool线程池当我们想多个线程一起执行,但每个线程运行的代码很少时,反复创建线程与销毁线程就会浪费很多时间。所以引入了线程池的概念。其底层实现:把Thread类以LinkedList集合的形式保存。当需要使用时,把这个线程调用出来,使用完毕再归还集合。线程池:可以容纳多个线程,其中的线程可以反复使用,无需反复创建线程消耗运行时间。线程池:JDK1.5之后提供线程池的接口,无需自...原创 2020-01-07 11:05:24 · 94 阅读 · 0 评论 -
线程等待与唤醒机制实例
线程等待与唤醒机制实例以顾客购买包子,老板制作包子同步进行为例,体现等待与唤醒机制的特点:1.其中包子类成为了老板与顾客的锁对象,通过调用bun.wait()、bun.notify()方法达到让两个线程等待与唤醒的目的。所以老板与顾客类需要Buns成员变量用于接收锁对象。2.包子类传递了老板与顾客之间需要传递的消息。3.因为访问了公共资源Buns,为保证线程安全,在线程执行期间,需要用同步...原创 2020-01-07 10:54:12 · 124 阅读 · 0 评论 -
Thread多线程
Thread多线程在学习多线程之前,需要先了解如下要点:并发:指两个或多个事件在同一 时间段 内发生。并行:指两个或多个事件在同一 时刻 发生。进程:是指在 内存中运行 的应用程序。进程是程序的执行单元。线程:线程是 进程的一个执行单元 。一个进程中至少有一个线程 。当一个程序执行一个功能时,就会开启一条应用程序到CPU的执行路径(线程),CPU就可以通过这个路径执行功能。线程调度的两...原创 2020-01-06 17:15:18 · 90 阅读 · 0 评论 -
多异常的捕获方式以及自定义异常类
多异常的写法以及自定义异常类1.多异常的三种捕获方式及注意事项:public static void main(String[] args) { //1 try{ int[] arr = {1,2,3}; System.out.println(arr[3]); }catch (ArrayIndexO...原创 2020-01-05 15:01:50 · 243 阅读 · 0 评论 -
异常Exception
异常Exception异常指的是程序在执行过程中,出现的非正常情况,最终会导致JVM的非正常停止。在java等编程语言中,异常本身就是一个类,产生异常就是创建了一个异常对象并抛出这个异常。Java处理异常的方式是中断处理。异常的根类是Throwable,其下有两个子类,Error与Exception。Exception有一个子类RuntimeException。Exception是程序开发过程...原创 2020-01-05 14:56:22 · 123 阅读 · 0 评论 -
Map集合
Map<k , v>集合Map集合与Collection集合不同,collection是单列集合,map是双列集合,一个元素包含两个值(key,value)。其特点有:1.双列集合,一个元素包含两个值(key,value)2.key,value的数据类型可以相同,也可以不同。3.Map中的元素,key是不允许重复的,value是允许重复的。4.key—value是一一对应的...原创 2020-01-04 14:47:29 · 91 阅读 · 0 评论 -
Collections工具类
Collections工具类Collections工具类为集合服务,其常用方法有:1.static < T > boolean addAll(Collection< T > c,T… elements)向集合中添加一些元素。2.static void shuffle(List< ? > lsit)打乱集合顺序3.static < T > so...原创 2020-01-03 16:21:20 · 79 阅读 · 0 评论 -
可变参数
可变参数是JDK 1.5之后的新特性使用前提:方法的参数类型已经确定,但是个数不确定时。原理:可变参数的底层是一个数组,使用数组存储相同类型的元素,根据传递参数的长度不同,数组的长度也是不同的。注意事项:1.一个方法的参数列表只能有一个可变参数2.如果方法的参数有多个,那么可变参数必须要写在末尾。 public static void main(String[] args) ...原创 2020-01-03 15:57:20 · 77 阅读 · 0 评论 -
LinkedHashSet集合
集合Collection是一个接口,它定义的是所有单列集合中共性的方法,所有单列集合都可以使用共性的方法,没有带索引的方法。Collection有两个子类接口List、Set。Set接口特点:1.不允许存储重复元素2.没有有索引,不能使用普通的for循环遍历List有三个具体实现类:TreeSet集合 HashSet集合 LinkedHashSet集合(其中LinkedHashSet是...原创 2020-01-03 15:38:55 · 134 阅读 · 1 评论 -
HashSet集合
集合Collection是一个接口,它定义的是所有单列集合中共性的方法,所有单列集合都可以使用共性的方法,没有带索引的方法。Collection有两个子类接口List、Set。Set接口特点:1.不允许存储重复元素2.没有有索引,不能使用普通的for循环遍历List有三个具体实现类:TreeSet集合 HashSet集合 LinkedHashSet集合(其中LinkedHashSet是...原创 2020-01-03 15:32:00 · 126 阅读 · 0 评论 -
链表集合LinkedList
集合Collection是一个接口,它定义的是所有单列集合中共性的方法,所有单列集合都可以使用共性的方法,没有带索引的方法。Collection有两个子类接口List、Set。List接口特点:1.有序的集合2.允许重复存储的元素3.有索引,可以使用普通的for循环遍历List有三个具体实现类:Vector集合 ArrayList集合 LinkedList集合其中LinkedLis...原创 2020-01-03 14:28:13 · 214 阅读 · 0 评论 -
List接口
集合Collection是一个接口,它定义的是所有单列集合中共性的方法,所有单列集合都可以使用共性的方法,没有带索引的方法。Collection有两个子类接口List、Set。List接口特点:1.有序的集合2.允许重复存储的元素3.有索引,可以使用普通的for循环遍历List有三个具体实现类:Vector集合 ArrayList集合 LinkedList集合因为List有序,有索...原创 2020-01-03 14:09:44 · 98 阅读 · 0 评论 -
创建泛型类、接口、方法及泛型通配符
创建泛型类、接口、方法及泛型通配符<?>如ArrayList集合一样,我们也可以自己定义包含泛型的类,方法和接口。泛型类:public class GenericClass<E> { private E name; public GenericClass() { } public GenericClass(E name) { ...原创 2020-01-01 16:58:58 · 592 阅读 · 0 评论 -
迭代器Iteration
迭代器Iteration能够以指针的形式迭代遍历集合中的元素。使用方法:1.iterator()方法得到一个迭代对象2.iterator.hasNext()判断是否有下一个元素3.iterator.next()取出元素,并把指针向后移动一位public static void main(String[] args) { Collection<String> s...原创 2020-01-01 16:30:45 · 305 阅读 · 0 评论 -
集合Collection
集合Collection是一个接口,它定义的是所有单列集合中共性的方法,所有单列集合都可以使用共性的方法,没有带索引的方法。Collection有两个子类接口List、Set。List接口特点:1.有序的集合2.允许重复存储的元素3.有索引,可以使用普通的for循环遍历List有三个具体实现类:Vector集合 ArrayList集合 LinkedList集合Set接口特点:1....原创 2020-01-01 16:11:15 · 154 阅读 · 0 评论 -
常用API之包装类
常用API之包装类基本类型十分好用,但是基本类型无法调用方法,所以需要对基本类型进行包装,就可以调用包装类的方法。基本类型包装类byteByteshortShortintIntegerlongLongfloatFloatdoubleDoublecharCharacterbooleanBoolean本文以Inte...原创 2019-12-31 19:31:52 · 219 阅读 · 1 评论