Dark horse
java
LiuszZZ
欢迎访问我的博客:https://iluis.gitee.io/
展开
-
89.【Spring JDBC】
Spring框架对JDBC的简单封装。提供了一个JDBCTemplate对象简化JDBC的开发步骤1. 导入jar包2. 创建JdbcTemplate对象。依赖于数据源DataSourceJdbcTemplate template = new JdbcTemplate(ds);例如:// 1.获取JdbcTemplate对象(放到成员变量位置上)private JdbcTempla...转载 2020-03-31 14:37:25 · 93 阅读 · 0 评论 -
88.【数据库连接池】
概念其实就是一个容器(集合),存放数据库连接的容器。当系统初始化好后,容器被创建,容器中会申请一些连接对象,当用户来访问数据库时,从容器中获取连接对象,用户访问完之后,会将连接对象归还给容器。好处节约资源用户访问高效实现标准接口:javax.sqlDataSource方法获取连接getConnection()归还连接如果连接对象Connection是从连接池中获取...转载 2020-03-31 14:36:39 · 101 阅读 · 0 评论 -
87.【事务】
事务概念:一个包含多个步骤的业务操作。如果这个业务操作被事务管理,则这多个步骤要么同时成功,要么同时失败。操作开启事务提交事务回滚事务使用Connection对象来管理事务开启事务调用该方法设置参数为false,即开启事务在执行sql之前开启事务setAutoCommit(boolean autoCommit);代码实现://开启事务conn.setAutoCo...转载 2020-03-31 14:35:44 · 84 阅读 · 0 评论 -
86.【JDBC工具类】
抽取JDBC工具类 : JDBCUtils目的:简化书写分析注册驱动也抽取抽取一个方法获取连接对象需求不想传递参数(麻烦),还得保证工具类的通用性。思路抽取一个方法获取连接使用配置文件jdbc.properties url= user= password= driver=抽取一个方法释放资源代码实现package cn.luis.demo3....转载 2020-03-31 14:34:57 · 70 阅读 · 0 评论 -
85.【JDBC】
概念Java DataBase Connectivity Java 数据库连接, Java语言操作数据库本质它是官方(sun公司)定义的一套操作所有关系型数据库的规则,即接口。各个数据库厂商去实现这套接口,提供数据库驱动jar包。我们可以使用这套接口(JDBC)编程,真正执行的代码是驱动jar包中的实现类。快速入门步骤导入驱动jar包复制mysql-connector-j...转载 2020-03-31 14:33:22 · 81 阅读 · 0 评论 -
84.【注解 JDK1.5】
1. 概述注解(Annotation),也叫元数据。一种代码级别的说明它是JDK1.5及以后版本引人的一个特性,与类、接口、枚举是在同一个层次。它可以声明在包、类、字段、方法、局部变量、方法参数等的前面,用来对这些元素进行说明,注释。注解:说明程序的。给计算机看的。注释:用文字描述程序的。给程序员看的作用分类编写文档:通过代码里标识的注解生成文档【生成文档doc文档】代码分析:通过代码...转载 2020-03-30 23:26:01 · 133 阅读 · 0 评论 -
83.【反射】
1. 概述反射:框架设计的灵魂框架:半成品软件。可以在框架的基础上进行软件开发,简化代码反射:将类的各个组成部分封装为其他对象,这就是反射机制反射面前没有隐私!(暴力反射)好处可以在程序运行中,操作这些对象。可以解耦,提高程序的可扩展性。Java代码在计算机中经历的三个阶段2. 获取class(字节码对象)对象的方式Class.forName("全类名...转载 2020-03-30 23:24:37 · 96 阅读 · 0 评论 -
82.【Junit 单元测试】
1. 测试分类黑盒测试不需要写代码,给输入值,看程序是否能够输出期望的值。白盒测试需要写代码,关注程序的具体流程。2. Junit 的使用白盒测试步骤定义一个测试类(测试用例)建议:测试类名:被测试的类名Test CalculatorTest包名:xxx.xxx.xx.test cn.luis.test定义测试方法:可以独立运行建议:方法名:test测试...转载 2020-03-30 23:21:01 · 91 阅读 · 0 评论 -
81.【方法引用】
在使用Lambda表达式的时候,我们实际上传递进去的代码就是一种解决方案:拿什么参数做什么操作。那么考虑一种情况:如果我们在Lambda中所指定的操作方案,已经有地方存在相同方案,那是否还有必要再写重复逻辑?1. 冗余的Lambda场景来看一个简单的函数式接口以应用Lambda表达式:@FunctionalInterfacepublic interface Printable { ...转载 2020-03-30 22:56:28 · 110 阅读 · 0 评论 -
80.【Stream流】
1. 引导说到Stream便容易想到I/O Stream,而实际上,谁规定”流就一定是IO流”呢?在Java8中,得益于Lambda所带来的函数式编程,引入了一个全新的Stream概念,用于解决已有集合类库既有的弊端。传统集合的多步遍历代码几乎所有的集合(如Co1lection接口或Map接口等)都支持直接或间接的遍历操作。而当我们需要对集合中的元素进行操作的时候,除了必需的添加、删除、获取...转载 2020-03-30 22:55:25 · 127 阅读 · 0 评论 -
79.【函数式接口】
1. 函数式接口1.1 概念函数式接口在Java中是指:有且仅有一个抽象方法的接口。函数式接口,即适用于函数式编程场景的接口。而Java中的函数式编程体现就是Lambda,所以函数式接口就是可以适 用于Lambda使用的接口。只有确保接口中有且仅有一个抽象方法,Java中的Lambda才能顺利地进行推导。语法糖是指使用更加方便,但是原理不变的代码语法。例如在遍历集合时使用的for-eac...转载 2020-03-29 21:51:01 · 103 阅读 · 0 评论 -
78.【网络编程综合案例】
案例:文件上传文件上传分析图解【客户端】输入流,从硬盘读取文件数据到程序中。【客户端】输出流,写出文件数据到服务端。【服务端】输入流,读取文件数据到服务端程序。【服务端】输出流,写出文件数据到服务器硬盘中。基本实现服务端实现:public class FileUpload_Server { public static void main(String[] args)...转载 2020-03-29 21:49:42 · 92 阅读 · 0 评论 -
77.【TCP通信程序】
1. 概述TCP通信能实现两台计算机之间的数据交互,通信的两端,要严格区分为客户端(Client)与服务端(Server)。TCP通信的客户端:向服务器发送连接请求,给服务器发送数据,读取服务器回写的数据。两端通信时步骤:服务端程序,需要事先启动,等待客户端的连接。客户端主动连接服务器端,连接成功才能通信。服务端不可以主动连接客户端。在Java中,提供了两个类用于实现TCP通信程...转载 2020-03-29 21:43:30 · 149 阅读 · 0 评论 -
76.【网络编程入门】
软件结构C/S结构 :全称为Client/Server结构,是指客户端和服务器结构。常见程序有QQ、迅雷等软件。B/S结构 :全称为Browser/Server结构,是指浏览器和服务器结构。常见浏览器有谷歌、火狐等。两种架构各有优势,但是无论哪种架构,都离不开网络的支持。网络编程,就是在一定的协议下,实现两台计算机的通信的程序。网络通信协议网络通信协议通过计算机网络可以使多台计...转载 2020-03-29 21:39:26 · 100 阅读 · 0 评论 -
59.【Lambda表达式】
能够理解函数式编程相对于面向对象的优点 能够掌握Lambda表达式的标准格式 能够使用Lambda标准格式使用Runnable与Comparator接口 能够掌握Lambda表达式的省略格式与规则 能够使用Lambda省略格式使用Runnable与Comparator接口 能够通过Lambda的标准格式使用自定义的接口(有且仅有一个抽象方法) 能够通过Lambda的省略格式使用自定...转载 2020-03-29 21:24:03 · 110 阅读 · 0 评论 -
58.【线程池】
1. 线程池思想概述我们使用线程的时候就去创建一个线程,这样实现起来非常简便,但是就会有一个问题:如果并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束了,这样频繁创建线程就会大大降低系统的效率,因为频繁创建线程和销毁线程需要时间。那么有没有一种办法使得线程可以复用,就是执行完一个任务,并不被销毁,而是可以继续执行其他的任务?在Java中可以通过线程池来达到这样的效果。今天我...转载 2020-03-29 21:22:38 · 92 阅读 · 0 评论 -
57.【等待唤醒机制】
1. 线程间通信**概念:**多个线程在处理同一个资源,但是处理的动作(线程的任务)却不相同。比如:线程A用来生成包子的,线程B用来吃包子的,包子可以理解为同一资源,线程A与线程B处理的动作,一个是生产,一个是消费,那么线程A与线程B之间就存在线程通信问题。为什么要处理线程间通信多个线程并发执行时, 在默认情况下CPU是随机切换线程的,当我们需要多个线程来共同完成一件任务,并且我们希望他...转载 2020-03-29 21:20:54 · 68 阅读 · 0 评论 -
56.【线程状态】
1. 线程状态描述当线程被创建并启动以后,它既不是一启动就进入了执行状态,也不是一直处于执行状态。在线程的生命周期中,有几种状态呢?在APl中java.lang.Thread.State这个枚举中给出了六种线程状态:这里先列出各个线程状态发生的条件,下面将会对每种状态进行详细解析线程状态导致状态发生条件NEW(新建)线程刚被创建,但是并未启动。还没调用start方法。...转载 2020-03-29 21:18:13 · 90 阅读 · 0 评论 -
55.【线程安全】
1. 线程安全多线程访问共享数据才可能会发生线程安全线程安全问题是不能产生的,我们可以让一个线程在访问共享数据的时候,无论是否失去了cpu的执行权;让其他的线程只能等待。代码:public class RunnableImpl implements Runnable { // 定义一个多线程共享票源 private int ticket = 100; // 设置线程...转载 2020-03-29 21:13:35 · 103 阅读 · 0 评论 -
54【多线程】
说出进程的概念 说出线程的概念 能够理解并发与并行的区别 能够开启新线程1. 并发与并行并发:指两个或多个事件在同一个时间段内发生。并行:指两个或多个事件在同一时刻发生(同时发生)。在操作系统中,安装了多个程序,并发指的是在一段时间内宏观上有多个程序同时运行,这在单 CPU 系统中,每一时刻只能有一道程序执行,即微观上这些程序是分时的交替运行,只不过是给人的感觉是同时运行...转载 2020-03-29 21:10:08 · 92 阅读 · 0 评论 -
PrintStream:打印流
能够说出打印流的特点1. 概述平时我们在控制台打印输出,是调用print方法和println方法完成的,这两个方法都来自于java.io.PrintStream类,该类能够方便地打印各种数据类型的值,是一种便捷的输出方式。特点只负责数据的输出,不负责数据的读取与其他输出流不同,PrintStream永远不会抛出IOException有特有的方法:void prin...转载 2020-03-29 14:58:34 · 246 阅读 · 0 评论 -
序列化
能够使用序列化流写出对象到文件 能够使用反序列化流读取文件到程序中1. 概述Java 提供了一种对象序列化的机制。用一个字节序列可以表示一个对象,该字节序列包含该对象的数据、对象的类型和对象中存储的属性等信息。字节序列写出到文件之后,相当于文件中持久保存了一个对象的信息。反之,该字节序列还可以从文件中读取回来,重构对象,对它进行反序列化。对象的数据、对象的类型和对象中存储的数据信息,...转载 2020-03-29 14:57:41 · 173 阅读 · 0 评论 -
转换流
能够阐述编码表的意义 能够使用转换流读取指定编码的文本文件 能够使用转换流写入指定编码的文本文件1. 字符编码和字符集字符编码Character Encoding就是一套自然语言的字符与二进制数之间的对应规则。计算机中储存的信息都是用二进制数表示的,而我们在屏幕上看到的数字、英文、标点符号、汉字等字符是二进制数转换之后的结果。按照某种规则,将字符存储到计算机中,称为编码 。反之,...转载 2020-03-29 14:53:49 · 96 阅读 · 0 评论 -
字符缓冲流
能够明确字符缓冲流的作用和基本用法 能够使用缓冲流的特殊功能1. 概述字符缓冲输出流java.io.BufferedWriter extends Writer:字符缓冲输出流继承自父类的共性成员方法void write(int c): 写入单个字符。void write(char[] cbuf):写入字符数组。abstract void write(char[] cbuf,...转载 2020-03-29 14:48:52 · 642 阅读 · 0 评论 -
字节缓冲流
能够使用字节缓冲流读取数据到程序 能够使用字节缓冲流写出数据到文件能够高效读写的缓冲流,,能够转换编码的转换流,能够持久化存储对象的序列化流等等。这些功能更为强大的流,都是在基本的流对象基础之上创建而来的,就像穿上铠甲的武士一样,相当于是对基本流对象的一种增强。1. 缓冲流能够高效读写的缓冲流,也叫高效流,是对4个基本的FileXxx 流的增强,所以也是4个流,按照数据类型分类:...转载 2020-03-29 14:46:16 · 263 阅读 · 0 评论 -
Properties:属性集
1. 概述java.util.Properties 继承于Hashtable ,来表示一个持久的属性集。它使用键值结构存储数据,每个键及其对应值都是一个字符串。该类也被许多Java类使用,比如获取系统属性时,System.getProperties 方法就是返回一个Properties对象。2. Properties类java.util.Properties集合extends Hashtab...转载 2020-03-29 11:18:23 · 245 阅读 · 0 评论 -
IO异常的处理
JDK7前处理之前的入门练习,我们一直把异常抛出,而实际开发中并不能这样处理,建议使用try...catch...finally 代码块,处理异常部分代码演示:public class HandleException1 { public static void main(String[] args) { // 声明变量 //提高变量fw的作用域,让fin...转载 2020-03-29 11:17:31 · 220 阅读 · 0 评论 -
FileWriter类
作用:把内存中字符数据写入到文件中java.io.FileWriter类是写出字符到文件的便利类。构造时使用系统默认的字符编码和默认字节缓冲区。java.io.FileWriter extends OutputStreamWriter extends Writer1. 共性的成员方法void write(int c):写入单个字符。void write(char[] cbuf):写入...转载 2020-03-29 11:16:31 · 912 阅读 · 0 评论 -
FileReader类
java.io.FileReader类是读取字符文件的便利类。构造时使用系统默认的字符编码和默认字节缓冲区。字符编码:字节与字符的对应规则。Windows系统的中文编码默认是GBK编码表。字节缓冲区:一个字节数组,用来临时存储字节数据。构造方法当你创建一个流对象时,必须传入一个文件路径。类似于FileInputStreamFileReader(File file): 创建一...转载 2020-03-29 11:15:30 · 527 阅读 · 0 评论 -
字符流
字符流字符输入流:Reader当使用字节流读取文本文件时,可能会有一个小问题。就是遇到中文字符时,可能不会显示完整的字符,那是因为一个中文字符可能占用多个字节存储。所以Java提供一些字符流类,以字符为单位读写数据,专门用于处理文本文件。java.io.Reader抽象类是表示用于读取字符流的所有类的超类,可以读取字符信息到内存中。它定义了字符输入流的基本共性功能方法。public vo...转载 2020-03-29 11:14:29 · 92 阅读 · 0 评论 -
文件输入流:FileInputStream
java.io.FileInputStream类是文件输入流,从文件中读取字节,把硬盘文件中的数据,读取到内存中使用public void close() :关闭此输入流并释放与此流相关联的任何系统资源。public abstract int read(): 从输入流读取数据的下一个字节。public int read(byte[] b): 从输入流中读取一些字节数,并将它们存储到字节数组...转载 2020-03-29 11:13:20 · 1678 阅读 · 0 评论 -
文件输出流:FileOutputStream
OutputStream有很多子类,我们从最简单的一个子类开始。java.io.FileOutputStream类是文件输出流,用于将数据写出到文件。1. 构造方法public FileOutputStream(File file):创建文件输出流以写入由指定的 File对象表示的文件。public FileOutputStream(String name): 创建文件输出流以指定的名称...转载 2020-03-29 11:11:18 · 10843 阅读 · 0 评论 -
63.【IO和字节流】
1. IO概述什么是IO生活中,你肯定经历过这样的场景。当你编辑一个文本文件,忘记了ctrl+s ,可能文件就白白编辑了。当你电脑上插入一个U盘,可以把一个视频,拷贝到你的电脑硬盘里。那么数据都是在哪些设备上的呢?键盘、内存、硬盘、外接设备等等。我们把这种数据的传输,可以看做是一种数据的流动,按照流动的方向,以内存为基准,分为输入input 和输出output ,即流向内存是输入流,流出内存...转载 2020-03-29 11:08:51 · 186 阅读 · 0 评论 -
62.【文件操作】
3.1 文件搜索搜索D:\aaa 目录中的.java 文件。分析目录搜索,无法判断多少级目录,所以使用递归,遍历所有目录。遍历目录时,获取的子文件,通过文件名称,判断是否符合条件。代码实现public class DiGuiDemo3 { public static void main(String[] args) { // 创建File对象 ...转载 2020-03-28 17:57:06 · 101 阅读 · 0 评论 -
61.【递归】
1. 概述递归:指在当前方法内调用自己的这种现象。递归的分类递归分为两种,直接递归和间接递归。直接递归称为方法自身调用自己。间接递归可以A方法调用B方法,B方法调用C方法,C方法调用A方法。注意事项递归一定要有条件限定,保证递归能够停止下来,否则会发生栈内存溢出。在递归中虽然有限定条件,但是递归次数不能太多。否则也会发生栈内存溢出。构造方法,禁止递归递归的使用前提当...转载 2020-03-28 17:56:19 · 159 阅读 · 0 评论 -
60.【File类】
1 概述java.io.File 类是文件和目录路径名的抽象表示,主要用于文件和目录的创建、查找和删除等操作。File类是一个与系统无关的类,任何的操作系统都可以使用这个类中的方法。重点:记住这三个单词file:文件directory:文件夹/目录path:路径基础语法static String pathSeparator与系统有关的路径分隔符,为了方便,它被表示...转载 2020-03-28 17:54:06 · 267 阅读 · 0 评论 -
53.【自定义异常类】
能够自定义异常类 能够处理自定义异常类1. 概述实际开发中也会出现很多异常,这些异常很可能在JDK中没有定义过,例如年龄负数问题,考试成绩负数问题,这时候我们就可以根据自己业务的异常情况来定义异常类。注册异常类RegisterException:自定义一个业务逻辑异常如何定义异常类自定义一个编译期异常::自定义类 并继承于java.lang.Exception。自定义一个运...转载 2020-03-24 17:28:01 · 252 阅读 · 0 评论 -
52.【异常的处理】
列举出常见的三个运行期异常 能够使用try…catch关键字处理异常 能够使用throws关键字处理异常Java异常处理的五个关键字:try、catch、finally、throw、throws第二章 异常的处理Java异常处理的五个关键字:try、catch、finally、throw、throws1. 抛出异常:throw在编写程序时,我们必须要考虑程序出现问题的情况。...转载 2020-03-24 17:24:20 · 199 阅读 · 0 评论 -
51.【异常】
能够辨别程序中异常和错误的区别 说出异常的分类 说出虚拟机处理异常的方式1. 概念指的是程序在执行过程中,出现的非正常的情况,最终会导致JVM的非正常停止。在Java等面向对象的编程语言中,异常本身是一个类,产生异常就是创建异常对象并抛出了一个异常对象。Java处理异常的方式是中断处理。注意异常指的并不是语法错误语法错了,编译不通过,不会产生字节码文件,根本不能运行.2...转载 2020-03-24 17:13:44 · 98 阅读 · 0 评论 -
50.【斗地主 V 2.0】
第十七章 模拟斗地主洗牌发牌介绍按照斗地主的规则,完成洗牌发牌的动作。具体规则组装54张扑克牌将54张牌顺序打乱三个玩家参与游戏,三人交替摸牌,每人17张牌,最后三张留作底牌。查看三人各自手中的牌(按照牌的大小排序)、底牌规则:手中扑克牌从大到小的摆放顺序:大王,小王,2,A,K,Q,J,10,9,8,7,6,5,4,3需求分析准备牌:完成数字与纸牌的映射关系...转载 2020-03-24 14:19:39 · 151 阅读 · 0 评论