
java
文章平均质量分 54
jieluomu12
这个作者很懒,什么都没留下…
展开
-
HTTP协议:响应消息,ServletContext,Response对象
今日内容1. HTTP协议:响应消息2. Response对象3. ServletContext对象HTTP协议:1. 请求消息:客户端发送给服务器端的数据 * 数据格式: 1. 请求行 2. 请求头 3. 请求空行 4. 请求体2. 响应消息:服务器端发送给客户端的数据 * 数据格式: 1. 响应行 1. 组成:协议/版本 响应状态码 状态码描述转载 2021-08-22 12:29:58 · 137 阅读 · 0 评论 -
Servlet&http&request
今日内容:1. Servlet2. HTTP协议3. RequestServlet:1. 概念2. 步骤3. 执行原理4. 生命周期5. Servlet3.0 注解配置6. Servlet的体系结构 Servlet -- 接口 | GenericServlet -- 抽象类 | HttpServlet -- 抽象类 * GenericServlet:将Servlet接口中其他的方法做了默认空实现,只将s转载 2021-08-20 17:30:29 · 143 阅读 · 0 评论 -
JDBC连接池 C3P0,Druid,SpringJDBC:JDBCTemplate
今日内容1. 数据库连接池2. Spring JDBC : JDBC Template数据库连接池1. 概念:其实就是一个容器(集合),存放数据库连接的容器。 当系统初始化好后,容器被创建,容器中会申请一些连接对象,当用户来访问数据库时,从容器中获取连接对象,用户访问完之后,会将连接对象归还给容器。2. 好处: 1. 节约资源 2. 用户访问高效3. 实现: 1. 标准接口:DataSource javax.sql包下的 ..转载 2021-08-09 18:29:46 · 115 阅读 · 0 评论 -
java 学习之注解
注解:* 概念:说明程序的。给计算机看的* 注释:用文字描述程序的。给程序员看的* 定义:注解(Annotation),也叫元数据。一种代码级别的说明。它是JDK1.5及以后版本引入的一个特性,与类、接口、枚举是在同一个层次。它可以声明在包、类、字段、方法、局部变量、方法参数等的前面,用来对这些元素进行说明,注释。* 概念描述: * JDK1.5之后的新特性 * 说明程序的 * 使用注解:@注解名称* 作用分类: ①编写文档:通过代码里标识的注解生成转载 2021-08-03 10:53:58 · 113 阅读 · 0 评论 -
Java9 Class类 newInstance 过时
Java9 Class类 newInstance 过时Class.forName("类的全限定名").newInstance();1被替换为Class.forName("类的全限定名").getDeclaredConstructor().newInstance();1源码说明 /** * Creates a new instance of the class represented by this {@code Class} * object. The class...转载 2021-08-03 10:05:32 · 925 阅读 · 0 评论 -
java学习之反射
反射:框架设计的灵魂* 框架:半成品软件。可以在框架的基础上进行软件开发,简化编码* 反射:将类的各个组成部分封装为其他对象,这就是反射机制 * 好处: 1. 可以在程序运行过程中,操作这些对象。 2. 可以解耦,提高程序的可扩展性。* 获取Class对象的方式: 1. Class.forName("全类名"):将字节码文件加载进内存,返回Class对象 * 多用于配置文件,将类名定义在配置文件中。读取文件,加载类 2.转载 2021-08-02 17:59:29 · 107 阅读 · 0 评论 -
java学习之Junit单元测试
Junit单元测试:* 测试分类: 1. 黑盒测试:不需要写代码,给输入值,看程序是否能够输出期望的值。 2. 白盒测试:需要写代码的。关注程序具体的执行流程。* Junit使用:白盒测试 * 步骤: 1. 定义一个测试类(测试用例) * 建议: * 测试类名:被测试的类名Test CalculatorTest * 包名:xxx.xxx.xx.test转载 2021-08-02 11:22:59 · 358 阅读 · 0 评论 -
java 学习之方法引用
原创 2021-08-02 00:08:30 · 97 阅读 · 0 评论 -
java 学习之Stream流
package cn.edu.ncu.xjx.Demo09Stream;import java.util.ArrayList;public class Demo01StreamTest { public static void main(String[] args) { ArrayList<String> one = new Array...原创 2021-08-01 23:19:13 · 1830 阅读 · 10 评论 -
java 学习之函数式接口
原创 2021-07-31 22:52:41 · 125 阅读 · 0 评论 -
java 学习tcp之B\S服务器
3.2 模拟B\S服务器(扩展知识点)模拟网站服务器,使用浏览器访问自己编写的服务端程序,查看网页效果。案例分析 准备页面数据,web文件夹。 复制到我们Module中,比如复制到day08中 我们模拟服务器端,ServerSocket类监听端口,使用浏览器访问 public static void main(String[] args) throws IOException { ServerSocket server = new Server..转载 2021-07-31 18:10:49 · 128 阅读 · 0 评论 -
java 学习tcp综合案例
3.1 文件上传案例文件上传分析图解 【客户端】输入流,从硬盘读取文件数据到程序中。 【客户端】输出流,写出文件数据到服务端。 【服务端】输入流,读取文件数据到服务端程序。 【服务端】输出流,写出文件数据到服务器硬盘中。 基本实现服务端实现:public class FileUpload_Server { public static void main(String[] args) throws IOException { ...转载 2021-07-31 18:05:21 · 108 阅读 · 0 评论 -
java 随机数生成方式
随机数的产生在一些代码中很常用,也是我们必须要掌握的。而java中产生随机数的方法主要有三种:第一种:new Random()第二种:Math.random()第三种:currentTimeMillis()第一种第一种需要借助java.util.Random类来产生一个随机数发生器,也是最常用的一种,构造函数有两个,Random()和Random(long seed)。第一个就是以当前时间为默认种子,第二个是以指定的种子值进行。产生之后,借助不同的语句产生不同类型的数。种子就是产生随原创 2021-07-31 00:06:06 · 137 阅读 · 0 评论 -
java 学习之TCP通信程序
2.1 概述TCP通信能实现两台计算机之间的数据交互,通信的两端,要严格区分为客户端(Client)与服务端(Server)。两端通信时步骤: 服务端程序,需要事先启动,等待客户端的连接。 客户端主动连接服务器端,连接成功才能通信。服务端不可以主动连接客户端。 在Java中,提供了两个类用于实现TCP通信程序: 客户端:java.net.Socket 类表示。创建Socket对象,向服务端发出连接请求,服务端响应请求,两者建立连接开始通信。 服务端:java.ne转载 2021-07-30 22:55:32 · 119 阅读 · 0 评论 -
java 学习之PrintStream
4.1 概述平时我们在控制台打印输出,是调用print方法和println方法完成的,这两个方法都来自于java.io.PrintStream类,该类能够方便地打印各种数据类型的值,是一种便捷的输出方式。4.2 PrintStream类构造方法 public PrintStream(String fileName): 使用指定的文件名创建一个新的打印流。 构造举例,代码如下:PrintStream ps = new PrintStream("ps.txt");改变打印流向原创 2021-07-28 18:12:17 · 633 阅读 · 0 评论 -
java 学习之序列化
3.1 概述Java 提供了一种对象序列化的机制。用一个字节序列可以表示一个对象,该字节序列包含该对象的数据、对象的类型和对象中存储的属性等信息。字节序列写出到文件之后,相当于文件中持久保存了一个对象的信息。反之,该字节序列还可以从文件中读取回来,重构对象,对它进行反序列化。对象的数据、对象的类型和对象中存储的数据信息,都可以用来在内存中创建对象。看图理解序列化:3.2 ObjectOutputStream类java.io.ObjectOutputStream 类,将Java对象的.转载 2021-07-28 17:53:24 · 123 阅读 · 0 评论 -
java 学习之转化流
2.1 字符编码和字符集字符编码计算机中储存的信息都是用二进制数表示的,而我们在屏幕上看到的数字、英文、标点符号、汉字等字符是二进制数转换之后的结果。按照某种规则,将字符存储到计算机中,称为编码 。反之,将存储在计算机中的二进制数按照某种规则解析显示出来,称为解码 。比如说,按照A规则存储,同样按照A规则解析,那么就能显示正确的文本符号。反之,按照A规则存储,再按照B规则解析,就会导致乱码现象。编码:字符(能看懂的)--字节(看不懂的)解码:字节(看不懂的)-->字符(能看懂的)原创 2021-07-27 23:54:38 · 315 阅读 · 0 评论 -
java 学习之缓冲流
昨天学习了基本的一些流,作为IO流的入门,今天我们要见识一些更强大的流。比如能够高效读写的缓冲流,能够转换编码的转换流,能够持久化存储对象的序列化流等等。这些功能更为强大的流,都是在基本的流对象基础之上创建而来的,就像穿上铠甲的武士一样,相当于是对基本流对象的一种增强。1.1 概述缓冲流,也叫高效流,是对4个基本的FileXxx 流的增强,所以也是4个流,按照数据类型分类: 字节缓冲流:BufferedInputStream,BufferedOutputStream 字符缓冲流:Bu原创 2021-07-27 18:30:38 · 169 阅读 · 0 评论 -
java 学习之属性集合Properties
5.1 概述java.util.Properties 继承于Hashtable ,来表示一个持久的属性集。它使用键值结构存储数据,每个键及其对应值都是一个字符串。该类也被许多Java类使用,比如获取系统属性时,System.getProperties 方法就是返回一个Properties对象。5.2 Properties类构造方法 public Properties() :创建一个空的属性列表。 基本的存储方法 public Object setProperty(String k转载 2021-07-26 23:41:45 · 185 阅读 · 0 评论 -
java 学习之IO的异常处理
第四章 IO异常的处理JDK7前处理之前的入门练习,我们一直把异常抛出,而实际开发中并不能这样处理,建议使用try...catch...finally 代码块,处理异常部分,代码使用演示:public class HandleException1 { public static void main(String[] args) { // 声明变量 FileWriter fw = null; try { //创建流对...转载 2021-07-26 22:50:39 · 659 阅读 · 0 评论 -
java 学习之字符流
当使用字节流读取文本文件时,可能会有一个小问题。就是遇到中文字符时,可能不会显示完整的字符,那是因为一个中文字符可能占用多个字节存储。所以Java提供一些字符流类,以字符为单位读写数据,专门用于处理文本文件。3.1 字符输入流【Reader】java.io.Reader抽象类是表示用于读取字符流的所有类的超类,可以读取字符信息到内存中。它定义了字符输入流的基本共性功能方法。 public void close() :关闭此流并释放与此流相关联的任何系统资源。 public int r转载 2021-07-26 22:48:16 · 131 阅读 · 0 评论 -
java 学习之字节流
2.1 一切皆为字节一切文件数据(文本、图片、视频等)在存储时,都是以二进制数字的形式保存,都一个一个的字节,那么传输时一样如此。所以,字节流可以传输任意文件数据。在操作流的时候,我们要时刻明确,无论使用什么样的流对象,底层传输的始终为二进制数据。2.2 字节输出流【OutputStream】java.io.OutputStream抽象类是表示字节输出流的所有类的超类,将指定的字节信息写出到目的地。它定义了字节输出流的基本共性功能方法。 public void close() :关闭此输出转载 2021-07-26 22:44:45 · 117 阅读 · 0 评论 -
java 学习之IO
1.1 什么是IO生活中,你肯定经历过这样的场景。当你编辑一个文本文件,忘记了ctrl+s ,可能文件就白白编辑了。当你电脑上插入一个U盘,可以把一个视频,拷贝到你的电脑硬盘里。那么数据都是在哪些设备上的呢?键盘、内存、硬盘、外接设备等等。我们把这种数据的传输,可以看做是一种数据的流动,按照流动的方向,以内存为基准,分为输入input 和输出output ,即流向内存是输入流,流出内存的输出流。Java中I/O操作主要是指使用java.io包下的内容,进行输入、输出操作。输入也叫做读取数据,输出转载 2021-07-26 22:41:35 · 74 阅读 · 0 评论 -
java 学习之文件递归综合案例
3.1 文件搜索搜索D:\aaa 目录中的.java 文件。分析: 目录搜索,无法判断多少级目录,所以使用递归,遍历所有目录。 遍历目录时,获取的子文件,通过文件名称,判断是否符合条件。 代码实现:public class DiGuiDemo3 { public static void main(String[] args) { // 创建File对象 File dir = new File("D:\\aaa"); ...转载 2021-07-25 19:12:31 · 114 阅读 · 0 评论 -
java 学习之递归
2.1 概述 递归:指在当前方法内调用自己的这种现象。 递归的分类: 递归分为两种,直接递归和间接递归。 直接递归称为方法自身调用自己。 间接递归可以A方法调用B方法,B方法调用C方法,C方法调用A方法。 注意事项: 递归一定要有条件限定,保证递归能够停止下来,否则会发生栈内存溢出。 在递归中虽然有限定条件,但是递归次数不能太多。否则也会发生栈内存溢出。 构造方法,禁止递归 pub转载 2021-07-25 18:44:58 · 94 阅读 · 0 评论 -
java 学习之 File类
第一章 File类1.1 概述java.io.File 类是文件和目录路径名的抽象表示,主要用于文件和目录的创建、查找和删除等操作。1.2 构造方法 public File(String pathname) :通过将给定的路径名字符串转换为抽象路径名来创建新的 File实例。 public File(String parent, String child) :从父路径名字符串和子路径名字符串创建新的 File实例。 public File(File parent, St转载 2021-07-24 22:23:15 · 301 阅读 · 0 评论 -
java 学习之 Lambda表达式
3.1 函数式编程思想概述在数学中,函数就是有输入量、输出量的一套计算方案,也就是“拿什么东西做什么事情”。相对而言,面向对象过分强调“必须通过对象的形式来做事情”,而函数式思想则尽量忽略面向对象的复杂语法——强调做什么,而不是以什么形式做。面向对象的思想:做一件事情,找一个能解决这个事情的对象,调用对象的方法,完成事情.函数式编程思想:只要能获取到结果,谁去做的,怎么做的都不重要,重视的是结果,不重视过程3.2 冗余的Runnable代码传统写法当需要启动一个.转载 2021-07-24 20:00:10 · 101 阅读 · 0 评论 -
java 学习线程之线程池
2.1 线程池思想概述我们使用线程的时候就去创建一个线程,这样实现起来非常简便,但是就会有一个问题:如果并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束了,这样频繁创建线程就会大大降低系统的效率,因为频繁创建线程和销毁线程需要时间。那么有没有一种办法使得线程可以复用,就是执行完一个任务,并不被销毁,而是可以继续执行其他的任务?在Java中可以通过线程池来达到这样的效果。今天我们就来详细讲解一下Java的线程池。2.2 线程池概念 线程池:其实就是一个容.转载 2021-07-24 19:00:43 · 98 阅读 · 0 评论 -
java 线程学习之等待唤醒机制
1.1 线程间通信概念:多个线程在处理同一个资源,但是处理的动作(线程的任务)却不相同。比如:线程A用来生成包子的,线程B用来吃包子的,包子可以理解为同一资源,线程A与线程B处理的动作,一个是生产,一个是消费,那么线程A与线程B之间就存在线程通信问题。为什么要处理线程间通信:多个线程并发执行时, 在默认情况下CPU是随机切换线程的,当我们需要多个线程来共同完成一件任务,并且我们希望他们有规律的执行, 那么多线程之间需要一些协调通信,以此来帮我们达到多线程共同操作一份数据。如.转载 2021-07-24 18:32:33 · 331 阅读 · 0 评论 -
java 学习之线程的状态
原创 2021-07-24 18:01:24 · 75 阅读 · 0 评论 -
java 学习之多线程安全
原创 2021-07-23 20:00:45 · 92 阅读 · 0 评论 -
java 学习之多线程并发值线程定义Thread类 和 Runnable接口
原创 2021-07-23 19:26:47 · 107 阅读 · 0 评论 -
java 学习笔记之 多线程中进程和线程的定义
第四章 多线程我们在之前,学习的程序在没有跳转语句的前提下,都是由上至下依次执行,那现在想要设计一个程序,边打游戏边听歌,怎么设计?要解决上述问题,咱们得使用多进程或者多线程来解决.4.1 并发与并行 并发:指两个或多个事件在同一个时间段内发生。 并行:指两个或多个事件在同一时刻发生(同时发生)。 在操作系统中,安装了多个程序,并发指的是在一段时间内宏观上有多个程序同时运行,这在单 CPU 系统中,每一时刻只能有一道程序执行,即微观上这些程序是分时的交.转载 2021-07-23 19:17:58 · 123 阅读 · 0 评论 -
java 学习之异常的处理
2.1 抛出异常throw在编写程序时,我们必须要考虑程序出现问题的情况。比如,在定义方法时,方法需要接受参数。那么,当调用方法使用接受到的参数时,首先需要先对参数数据进行合法的判断,数据若不合法,就应该告诉调用者,传递合法的数据进来。这时需要使用抛出异常的方式来告诉调用者。在java中,提供了一个throw关键字,它用来抛出一个指定的异常对象。那么,抛出一个异常具体如何操作呢? 创建一个异常对象。封装一些提示信息(信息可以自己编写)。 需要将这个异常对象告知给调用者。怎么告知呢?怎转载 2021-07-23 09:48:06 · 129 阅读 · 0 评论 -
java 学习之异常处理
1.1 异常概念异常,就是不正常的意思。在生活中:医生说,你的身体某个部位有异常,该部位和正常相比有点不同,该部位的功能将受影响.在程序中的意思就是: 异常 :指的是程序在执行过程中,出现的非正常的情况,最终会导致JVM的非正常停止。 在Java等面向对象的编程语言中,异常本身是一个类,产生异常就是创建异常对象并抛出了一个异常对象。Java处理异常的方式是中断处理。异常指的并不是语法错误,语法错了,编译不通过,不会产生字节码文件,根本不能运行.1.2 异常体系异常机制其实是帮助转载 2021-07-22 23:55:35 · 69 阅读 · 0 评论 -
JDK9对集合添加的优化
2.1 JDK9对集合添加的优化通常,我们在代码中创建一个集合(例如,List 或 Set ),并直接用一些元素填充它。 实例化集合,几个 add方法 调用,使得代码重复。public class Demo01 { public static void main(String[] args) { List<String> list = new ArrayList<>(); list.add("abc"); list.a...原创 2021-07-22 21:25:44 · 84 阅读 · 0 评论 -
java 学习之Map集合
1.1 概述现实生活中,我们常会看到这样的一种集合:IP地址与主机名,身份证号与个人,系统用户名与系统用户对象等,这种一一对应的关系,就叫做映射。Java提供了专门的集合类用来存放这种对象关系的对象,即java.util.Map接口。我们通过查看Map接口描述,发现Map接口下的集合与Collection接口下的集合,它们存储数据的形式不同,如下图。 Collection中的集合,元素是孤立存在的(理解为单身),向集合中存储元素采用一个个元素的方式存储。 Map中的集合.转载 2021-07-22 19:42:17 · 243 阅读 · 0 评论 -
java 学习之Collections
第五章 Collections2.1 常用功能 java.utils.Collections是集合工具类,用来对集合进行操作。部分方法如下: public static <T> boolean addAll(Collection<T> c, T... elements):往集合中添加一些元素。 public static void shuffle(List<?> list) 打乱顺序:打乱集合顺序。 public static <转载 2021-07-22 00:12:48 · 98 阅读 · 0 评论 -
java 学习之Set集合
java.util.Set接口和java.util.List接口一样,同样继承自Collection接口,它与Collection接口中的方法基本一致,并没有对Collection接口进行功能上的扩充,只是比Collection接口更加严格了。与List接口不同的是,Set接口中元素无序,并且都会以某种规则保证存入的元素不出现重复。Set集合有多个子类,这里我们介绍其中的java.util.HashSet、java.util.LinkedHashSet这两个集合。tips:Set集合取出元素的方式转载 2021-07-21 22:43:04 · 289 阅读 · 0 评论 -
java学习之 List集合
我们掌握了Collection接口的使用后,再来看看Collection接口中的子类,他们都具备那些特性呢?接下来,我们一起学习Collection中的常用几个子类(java.util.List集合、java.util.Set集合)。1.1 List接口介绍java.util.List接口继承自Collection接口,是单列集合的一个重要分支,习惯性地会将实现了List接口的对象称为List集合。在List集合中允许出现重复的元素,所有的元素是以一种线性方式进行存储的,在程序中可以通过索引..原创 2021-07-20 23:58:03 · 142 阅读 · 0 评论