Java课堂笔记
文章平均质量分 91
MustangYL
https://www.yuque.com/mustangyl
展开
-
day045 注解 & 动态代理
1 Junit测试Junit测试单元是由第三方提供的测试工具,可以使用main方法,让指定的方法直接执行起来;在junit测试单元中有3个注解:1: @Test 表示要测试这个方法2: @Before 表示在执行被测试的方法(含有@Test的方法)之前,需要执行含有@Before的方法3: @After 表示在执行被测试的方法(含有@Test的方法)之后,需要执行含有@After的方法junit的使用步骤:1:导入junit.jar包(在eclipse中已经内置了,直...原创 2021-05-29 11:50:48 · 228 阅读 · 0 评论 -
day044 Redis 第二天
1 Redis的数据结构1.1 存储list1.1.1 概述在Redis中,List类型是按照插入顺序排序的字符串链表。和数据结构中的普通链表一样,我们可以在其头部(left)和尾部(right)添加新的元素。在插入时,如果该键并不存在,Redis将为该键创建一个新的链表。与此相反,如果链表中所有的元素均被移除,那么该键也将会被从数据库中删除。List中可以包含的最大元素数量是4294967295。 从元素插入和删除的效率视角来看,如果我们是在链表的两头插入或删除元素,这将会是非常高效的..原创 2021-05-29 11:49:02 · 141 阅读 · 0 评论 -
day043 Redis
1 Linux中软件的安装1.1 jdk的安装(具体看自己录的操作录像)1.1.1 需求在linux 下安装JDK,可正常使用java和javac等命令1.1.2 准备工作 上传需要的所有软件1.1.3 相关知识点:rpm命令 格式:rpm [参数] [软件]-v 显示指令执行过程。-h或--hash 套件安装时列出标记。-q 使用询问模式,当遇到任何问题时,rpm指令会先询问用户。 -a 查询所有套件。-i<套件档>或...原创 2021-05-29 11:44:31 · 110 阅读 · 0 评论 -
day042 linux
1 Linux概述1.1 Unix介绍Unix是一个强大的多用户、多任务操作系统。于1969年在AT&T(美国电话电报公司)的贝尔实验室开发。UNIX的商标权由国际开放标准组织(The Open Group)所拥有。UNIX操作系统是商业版,需要收费,价格比Microsoft Windows正版要贵一些。不过UNIX有免费版的,例如:NetBSD等类似UNIX版本。1.2 Linux介绍Linux是一套免费的类Unix操作系统Linux是一套免费使用和自由传播的类Un原创 2021-05-29 11:41:44 · 128 阅读 · 0 评论 -
day041 easyUI组件
本篇具体使用方法easyui的api中都有1 相关知识点1.1 EasyUI介绍easyui是一种基于jQuery的用户界面插件集合。easyui为创建现代化,互动,JavaScript应用程序,提供必要的功能。使用easyui你不需要写很多代码,你只需要通过编写一些简单HTML标记,就可以定义用户界面。easyui是个完美支持HTML5网页的完整框架。easyui节省您网页开发的时间和规模。easyui很简单但功能强大的。是一个老技术,一般用于对页面花哨程度要求不高的管原创 2021-05-29 11:39:52 · 270 阅读 · 0 评论 -
day040 ajax
1 案例1-异步用户名校验1.1 需求当用户在输入框中填写完信息之后,光标离开输入框的时候,对用户输入的值进行校验,如果数据库中已经存在了这个值,则提示用户名已存在,否则提示可用。1.2 技术分析1:当页面加载的时候,给表单的输入框添加一个离焦事件。2:当离焦事件触发的时候,获取表单项的值,并传递到servlet中,进行校验,提示结果。(要求页面不能全部刷新,需要使用ajax技术完成)1.3 Ajax概述Ajax 即“Asynchronous Javascript And X原创 2021-05-29 11:36:40 · 125 阅读 · 1 评论 -
day038-039 商品增删改查、批量删除和多条件查询综合案例
1 查询所有商品流程分析2 删除所选商品流程分析3 修改所选商品流程分析4 添加商品流程分析(插播:反射与工具类抽取)反射工具类抽取工具类抽取举例:MyBaseSerlvet.javaimport java.io.IOException;import java.lang.reflect.Method;import javax.servlet.ServletException;import javax.servlet.http.HttpSe原创 2021-05-07 22:19:55 · 238 阅读 · 3 评论 -
day037 listener & Timer & 发送邮件工具类
1 WEB监听器1.1 概述Web监听器就是一个组件,可以对其他的内容,进行监视控制,当被监视的内容,发生指定的行为时,web监听器就可以给出相应的处理方案。事件源:被监视的内容。监听器:监视别人的东西,称为监听器。事件:作用于事件源上的行为。事件源对事件行为描述出来的一个对象,就是事件对象(事件对象可以包含事件源)。1.2 Web中的事件源一共有3个事件源:(1)HttpServletRequest 请求对象(2)HttpSession sess...原创 2021-04-22 00:49:12 · 234 阅读 · 1 评论 -
day036 过滤器 filter
1案例1-自动登录1.1 需求及流程介绍当用户直接访问登录后的页面(例如:购物车页面,订单页面等)直接显示出上一次登录的用户对象,这个功能就是自动登录的功能。如果用户在上一次登录的时候,没有勾选自动登录,那么用户直接访问登录后的页面时,不显示用户是谁,加购物车,提交订单等都需要让用户先登录。(简单说就是跟jd一样。今天只做前一句话,后一句话是权限控制,是后面的内容。)1.2 技术分析1:可以使用会话技术让服务器知道浏览器发送的多次请求。2:需要使用过滤器技术,对用户发送的每.原创 2021-04-17 09:09:44 · 187 阅读 · 0 评论 -
day035 jstl & el & MVC
1:需要使用el表达式,专门替代 <%= %>2:使用jstl技术专门替代 <% 这里的循环和判断 %>1 el1.1 el表达式概述EL(Expression Language) 是为了使JSP写起来更加简单。是独立的语言。在jsp页面可以直接编写el表达式的代码,用于获取jsp4大域中的数据或其他地方的数据。1.2 el表达式的基本语法在jsp页面上直接使用${ 4大域中的属性名 }; 取值之后,会自动将数据值输出到浏览器。注意:...原创 2021-04-16 01:22:19 · 135 阅读 · 0 评论 -
day034 jsp
前言:今天内容知道就行,因为有更好的技术(jstl)来实现今天的内容,在以后开发中基本不会用今天的东西(但是最好能理解今天的内容,虽然不用会敲)。1 jsp1.1 jsp概述Java server pages,简称jsp。中文名:java服务器页面技术。可以帮我们完成页面标签及数据的字符串拼接,主要用于动态数据(通常是从数据库中查询的数据)的展示。1.2 jsp的创建使用eclipse的模板直接创建jsp文件即可。1.3 jsp的执行原理通过观察tomcat目录下的wo.原创 2021-04-15 10:10:05 · 146 阅读 · 0 评论 -
day033 cookie & session
1 案例1-显示上一次登陆的时间1.1 需求当用户访问我们的servlet时,如果是第一次访问,则提示是第一次访问,否则显示用户上一次的访问时间;1.2 技术分析需要记录用户上一次的访问时间,根据分析,request生命周期太短,不合适。servletContext生命周期太长,且是占用服务器的内存空间,使用会话技术,就可以解决这个问题。1.3 会话概述所谓的会话技术,就是浏览器与服务器的多次通信之间的一个技术。按照会话技术的位置,可以分为客户端会话技术和服务器端会话技术。客原创 2021-04-14 23:06:20 · 115 阅读 · 0 评论 -
day032 request & jsp
1 案例1-用户注册1.1 需求当用户在页面上填写完信息之后,点击注册按钮,将用户填写的信息添加到数据库中;1.2 技术分析1:直接复制原型页面到工程中,即可拥有一个表单页面了;(html,form)2:将表单填写的信息提交给servlet;(Servlet,Request)3:在servlet中获取所有的参数键值对,使用一个工具类即可将map中的数据封装到一个javaBean对象中;(BeanUtils)4:将javaBean的数据保存到数据库中;(DbUtils)1.3原创 2021-04-12 23:55:35 · 131 阅读 · 1 评论 -
day031 response & servletContext
1 案例1-统计网站访问次数1.1 需求当用户访问网站的时候,直接提示用户是第几个访问该网站的人;1.2 技术分析1:需要使用一个容器来保存所有用户访问的次数;2:使用servletContext对象即可完成这个事情;1.3 ServletContext概述servletContext是一个工程容器对象;(可以简单理解为时tomcat为每一个web工程创建的一个唯一的对象),程序员可以获取这个对象,并操作这个对象;注意:该对象只能由tomcat创建,程序员不能自己创建;原创 2021-04-11 02:33:48 · 226 阅读 · 0 评论 -
day030 Servlet
1 Servlet1.1 Servlet概述运行在服务器端的一个java小程序;1.2 Servlet的作用使用servlet可以对用于在浏览器端发出的请求做出相应的处理,并给出相应的结果;1.3 Servlet的访问流程分析1.4 Servlet的快捷创建方式1:使用eclipse的模板直接创建servlet即可;(会自动在web.xml中完成servlet配置的过程)参考代码:public class MyServlet2 extends .原创 2021-04-10 00:58:36 · 102 阅读 · 0 评论 -
day029 Tomcat&HTTP
1 Tomacat服务器1.1 WebWeb就是我们通常使用的网络,(www.xxx...);可以给全球网络使用者获取想要的信息资源;1.2 Web资源凡是网络中的数据,都是web资源;Web资源根据数据类型的不同,分为两类:1:静态的web资源:(美工的工作)Html,图片,音频,视频....2:动态web资源:(java程序员的主要工作)Jsp,servlet...1.3 WEB服务器Web服务器就是能在网络中对访问者提供服务的一个机器(软件+硬件);原创 2021-04-08 13:37:48 · 81 阅读 · 0 评论 -
day028 Bootstrap
今天主要是学会查api,重点在api的使用上。1 Bootstrap概述Bootstrap是一套前端框架,基于html,css,javascript(其实用的不是原生的js,而是用的jquery)这些技术实现的;可以让程序员给html标签,添加一些属性(class) 即可拥有相应的效果;Bootstrap最大的特点是支持响应式布局;响应式布局:就是用一个页面可以让不同的(屏幕尺寸)设备访问出不同的效果,这种技术就是响应式布局;2 Bootstrap的作用主要用于简化程序员编写原创 2021-04-02 17:58:50 · 122 阅读 · 0 评论 -
day027 jQuery第二天
1 案例1-省市联动1.1 需求当用户在选择省下拉框信息时,动态修改市下拉框对应的信息;1.2 技术分析1:当页面加载的时候需要给省下拉框绑定一个change事件;2:当事件触发的时候,获取用户选择的省份对应的编号;3:使用省份编号作为二维数组的索引,获取对应的一维数组信息;4:遍历一维数组中的信息,并添加到市对应的下拉框中;1.3 Jquery操作value属性和元素体操作value属性专用的方法:Val方法;操作元素体(包含子标签):Html方法操作纯原创 2021-04-01 15:49:07 · 94 阅读 · 0 评论 -
day026 jQuery基础入门
1 案例1-定时弹广告1.1 需求当页面加载1秒后,显示一个广告图,广告图显示2秒后,隐藏广告图;1.2 技术分析1:由于使用js的代码太繁琐,因此我们使用js的工具类解决这个案例的效果;2:当页面加载的时候,需要使用事件解决页面加载时机问题;3:涉及到1秒做xxx,2秒做xxx,需要使用定时器实现;4:让图片显示或隐藏;1.3 Js的工具类-jQueryJquery就是js的一个小框架,jquery的宗旨:写的更少,做的更多;1.4 Jquery的作用可以让程序原创 2021-04-01 00:02:13 · 99 阅读 · 0 评论 -
day025 JavaScript第二天
1 案例1-表单校验1.1 需求介绍当用户离开输入框的时候,对用户在输入框中输入的内容进行校验,如果信息合法,则不进行任何提示,如果信息不合法,则在输入框后面以红色的字体提示即可;1.2 技术分析1: 当用户离开输入框的时候,我们希望获取输入框的值并进行校验;需要使用事件完成;2: 如果检验不合法,希望在输入框后面用红色的字体提示,需要使用js的innerHTML属性完成;1.3 Js中的事件1.3.1 什么是事件?当用户在浏览器页面上,触发一些条件的时候,我们可以使用代码对原创 2021-03-30 19:57:54 · 163 阅读 · 0 评论 -
day024 JavaScript入门
1 案例1--表单校验案例1.1 需求介绍当表单提交的时候,对用户在表单中填写的信息进行校验,如果信息合法则可以让表单提交,如果不合法,则阻止表单提交;1.2 技术分析1:当xxx的时候,做xxx的事情;需要学习javascript中的事件操作;2:获取用户填写的信息;需要使用javascript的获取信息的方法完成;3:使用javascript中的逻辑判断语句,可以完成判断的需求;4:使用javascript的事件可以控制表单的提交与否;1.3 JavaScript概述原创 2021-03-30 11:35:13 · 173 阅读 · 0 评论 -
day023 html&css
1 Html其他标签1.1 html的表单标签HTML 表单用于搜集不同类型的用户输入。简单记就是可以让用户输入信息,获取到这些信息并提交到指定位置;使用form标签表示表单;Action:用于指定表单提交的路径;(就是表单的数据交给谁)Enctype:用于指定表单的提交编码格式;(后面使用,用于文件上传)Method:用于指定表达的提交方式;(后面使用,用于在服务器中获取表单的数据及乱码处理)1.1.1 表单项--input(重点)在表单中,可以收集用户信息的具体标原创 2021-03-30 10:43:52 · 85 阅读 · 0 评论 -
day022 html
1 案例1-公司简介1.1 需求用浏览器展示我们公司简介信息,其中,公司名独立占一行,以大标题的形式出现,下面的简介以文字段落展示,有些关键字眼需要变红,加粗,倾斜等;1.2 技术分析1:需要学习一个能在浏览器上展示信息的技术(html)2:需要学习文字操作,标题操作,字体颜色,加粗,倾斜,段落,水平线技术;1.3 HTML1.3.1 html概述超文本标记语言,英文名(HyperText Markup Language),简单记就是xml加固定约束;1.3.2 html原创 2021-03-25 23:32:53 · 96 阅读 · 3 评论 -
day021 事务
1 事务概述2 转账案例的实现2.1 mysql操作事务(了解)sqlyog会让事务失效,所以试验的时候得用控制台。 sql语句 描述 start transaction; 开启事务 commit; 提交事务 rollback; 回滚事务 mysql事务是默认自动提交。扩展:Oracle数据库事务不自动提交。2.2原创 2021-03-25 10:47:50 · 400 阅读 · 0 评论 -
day020 JDBC&连接池&DBUtils
1 JDBC1.1 sql注入攻击SQL注入:用户输入的内容作为了SQL语句语法的一部分,改变了原有SQL真正的意义。假设有登录案例SQL语句如下:SELECT * FROM 用户表 WHERE NAME = 用户输入的用户名 AND PASSWORD = 用户输的密码;此时,当用户输入正确的账号与密码后,查询到了信息则让用户登录。但是当用户输入的账号为XXX 密码为:XXX’ OR ‘a’=’a时,则真正执行的代码变为:SELECT * FROM 用户表 WHERE NAME =.原创 2021-03-21 03:32:15 · 194 阅读 · 0 评论 -
day019 mysql多表查询&JDBC
1 多表关系实战1.1 一对多(省市)省市一对多、省市自我一对多两张表/* 省市一对多的关系 省表(主表) 市表(从表)*/# 省表(主表)CREATE TABLE province ( id INT PRIMARY KEY AUTO_INCREMENT, `name` VARCHAR(20), description VARCHAR(20));# 市表(从表)CREATE TABLE city ( .原创 2021-03-18 01:20:01 · 190 阅读 · 0 评论 -
day018 mysql单表&多表
1 SQL语句之DQL数据准备#创建商品表:CREATE TABLE product( pid INT PRIMARY KEY AUTO_INCREMENT, pname VARCHAR(20), price DOUBLE, category_id VARCHAR(32));INSERT INTO product(pid,pname,price,category_id) VALUES(1,'联想',5000,'c001');INSERT INTO product(pid,pname原创 2021-03-10 23:38:42 · 164 阅读 · 0 评论 -
day017 mysql单表
1 介绍1.1 数据库和数据库管理系统介绍数据库:数据库就是存储数据的仓库,其本质是一个文件系统,数据按照特定的格式将数据存储起来,用户可以对数据库中的数据进行增加,修改,删除及查询操作。数据库管理系统:数据库管理系统(DataBase Management System,DBMS):指一种操作和管理数据库的大型软件,用于建立、使用和维护数据库,对数据库进行统一管理和控制,以保证数据库的安全性和完整性。用户通过数据库管理系统访问数据库中表内的数据。1.2 数据表以及java和数据表的对应原创 2021-03-03 00:36:54 · 119 阅读 · 0 评论 -
day016 反射
1 反射1.1 类的加载时机1. 创建类的实例2. 类的静态变量,或者为静态变量赋值3. 类的静态方法4. 使用反射方式来强制创建某个类或接口对应的java.lang.Class对象5. 初始化某个类的子类6. 直接使用java.exe命令来运行某个主类不用背,就是用到了这个类,这个类就会被加载进内存。1.2 类的加载过程三步1.3 反射概述Java反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用.原创 2021-02-27 18:12:20 · 148 阅读 · 0 评论 -
day015 XML
XML全称为Extensible Markup Language,意思是可扩展的标记语言。XML的作用:1.储存数据。2.配置文件。3.在网络中传输数据(用的不多,一般用json)1. 语法1.1 xml的文档声明 格式:<?xml version="1.0" encoding="utf-8"?> a. 文档声明必须以<?开头,以?>结尾。b. 文档声明必须写在xml中的第一行第一列。文档声明也可以省略,推荐不省略。c. xml文...原创 2021-02-25 00:41:35 · 97 阅读 · 0 评论 -
day014 网络编程【Socket网络编程】
1 网络通信协议1.1 IP地址1.2 端口号1.3 InetAddress基本使用在java中,可以使用一个类表示ip地址,这个类叫做InetAddressstatic InetAddress getLocalHost(): 获取到本机的ip地址对象。static InetAddress getByName(String host):根据主机名获取到ip地址对象。String getHostName(): 获取字符串类型的主机名。String getHostAddr原创 2021-02-24 15:04:52 · 228 阅读 · 0 评论 -
day013 多线程【Thread、线程创建】
1 多线程1.1多线程介绍1.1.1 进程的概念进程:进程指正在运行的程序。确切的来说,当一个程序进入内存运行,即变成一个进程,进程是处于运行过程中的程序,并且具有一定独立功能。1.1.2 线程的概念线程:线程是进程中的一个执行单元,负责当前进程中程序的执行,一个进程中至少有一个线程。一个进程中是可以有多个线程的,这个应用程序也可以称之为多线程程序。每一个线程都有一个做自己的栈空间,栈空间是线程私有的.堆是多个线程共享的.1.3 线程的调度模式1.2 main线程原创 2021-02-24 15:03:42 · 140 阅读 · 0 评论 -
day012 IO【转换流、打印流、序列化】
1 字符流1.1 字符编码表编码表就是字节(数字)和字符(汉字或者其他语言)的对应关系表。ASCII: 1字节(0 + 7个二进制位) 128个字符iso8859-1(latin) 1字节 256个字符。gb2312(1980) 1/2 个字节 包含了六千多中文或者符号。...原创 2020-12-23 03:01:29 · 229 阅读 · 0 评论 -
day011 IO【字节流、高效流】
1 概述2 计算机中一切均为字节8个比特位就是1个字节,1个二进制位就是一个比特位。在数据传输过程中,一切数据(文本、图像、声音等)最终存储的均为一个个字节,即8个二进制数字。所以数据传输过程中使用二进制数据可以完成任意数据的传递。我们向一个文件中存储一定的数据(一些数字),如果使用文本方式打开,则会以文本的方式解释数据。如果以视频的方式打开,则会以视频的方式解释数据。音频、可行执行文件等亦是如此。所以,在文件传输过程中,我们要时刻明确,传输的始终为二进制数据。3 字节流3.1原创 2020-11-19 00:19:15 · 101 阅读 · 0 评论 -
day010 IO【File类、递归】
目录(directory): 表示计算机中的一个文件夹。用来存放文件。文件(file):表示的就是计算机中的文件。用来存储数据。路径(path):表示的就是计算机中的一个位置。这个位置可以是文件,也可以是文件夹。在Java中可以使用File类表示计算机中的文件或文件夹。注意:File这个英语单词表示的是文件。 但是在java中File类既可以表示文件,也可以表示文件夹。1 File类1.1 File类的四个静态成员变量static String pathSeparator:.原创 2020-10-30 16:26:48 · 90 阅读 · 0 评论 -
day09-附属-快速排序(扩展)
package test;import java.util.Random;public class QuickSort { public static void main(String[] args) { //定义一个数组 int[] arr = new int[100000]; Random random = new Random(); //给数组元素赋值 for (int i = 0; i < arr...原创 2020-10-22 11:05:29 · 72 阅读 · 0 评论 -
day09-附属-内部接口的介绍
在接口中定义的接口就是内部接口。内部接口默认使用public static 修饰,如果我们不写,系统也会自己加上。Outer接口public interface Outer { void outerMethod(); //public static final int num = 10; //public abstract void function(); interface Inner { void innerMetho...原创 2020-10-22 10:57:34 · 188 阅读 · 0 评论 -
day009 集合【Map、可变参数、Collections】
1 Map接口1.1Map集合 Collection中的集合,元素是孤立存在的(理解为单身),向集合中存储元素采用一个个元素的方式存储。 Map中的集合,元素是成对存在的(理解为夫妻)。每个元素由键与值两部分组成,通过键可以找对所对应的值。 Collection中的集合称为单列集合,Map中的集合称为双列集合。 需要注意的是,Map中的集合不能包含重复的键,值可以重复;每个键只能对应一个值。 Map中常用的集合为HashMap集合、LinkedHashMap集合...原创 2020-10-22 10:56:32 · 90 阅读 · 0 评论 -
day08-附属
哈希值就是一串数字,这个数字是通过计算的方式获取到的。可以通过Object里面的hashCode方法获取一个对象的哈希值。Object里面的hashCode方法计算方式,哈希值是根据对象的地址值计算出来的。可以把哈希值看成对象的一个标识(特征码), 哈希值并不唯一。【对象的哈希值通过hashCode方法可以获取到】如果希望自己定义哈希值的计算规则,那么需要在【子类中重写hashCode方法】1 字符串的哈希值String里面重写了hashCode方法...原创 2020-10-22 10:55:45 · 96 阅读 · 0 评论 -
day008 集合【LinkedList、HashSet、Collection集合体系】
1 List集合存储数据的结构(1)栈(2)队列(3)数组(4)链表2 List接口List 是Collection的一个子接口。这个接口下面的集合有以下特点:1. 有序。(有序不是顺序,有序指的是怎么存,就怎么取。)2. 有索引。3. 可以存放重复元素。List接口下面的实现类。 ArrayList,LinkedList,VectorList接口中的常见方法:boolean add(E e): ...原创 2020-10-22 10:55:06 · 84 阅读 · 0 评论