- 博客(34)
- 收藏
- 关注
原创 JVM体系结构及垃圾清理
一、JVM体系结构 1.类加载子系统 首次运行类时进行加载—连接—初始化。 加载(Loading):加载类文件。通过引导类加载器(Bootstrap)、扩展类加载器(Extension)、应用类加载器(Application)来完成类的加载 1.引导类加载器:在源码中没有这个类加载器,是空。仅仅是给coder看的 2.扩展类加载器:必须存在。有三层继承关系,最上层是ClassLoader抽象类,定义了一些加载模板,采用模板方法模式。核心类在于两个方法:defineClass、loadClass。给子
2021-08-19 15:45:11
285
原创 笔试测试一
问题 编写一个单例模式? 对一组数进行升序排序,使用快排实现? 使用多线程实现生产者消费者模型? Java 中==和 equals()的区别.? JDBC 操作数据库的步骤有哪些? 重载和重写的区别.? 什么是序列化与反序列化.? 线程的状态有哪些.? 线程池执行流程是什么.? 什么是死锁?造成线程死锁的四个条件是什么. 答案 1. 编写一个单例模式? //都是线程安全的 //静态内部类 public class staticInnerClass(){ private
2021-08-17 21:20:14
146
原创 笔试测试二
问题: 请描述下 Servlet 的声明周期? JSP 的内置对象有几个,请分别介绍? JavaWeb 中请求转发和重定向的区别? 说一下你对 MVC 模式的理解? Get 和 post 两种提交方式的区别有哪些? Session 和 Cookie 的区别? 什么是 Servlet? 说一下您对 IOC 和 AOP 的理解? String、StringBuffer、StringBuilder 有什么区别? Java 中的修饰符有哪些? final、fianlly、finalize 的区别? List、Se
2021-08-17 20:41:19
199
原创 Redis和Jedis
Redis redis的命令操作 通用命令: 1.查询全部的key:keys * 2.获取键key对应的value的类型:type key 3.删除指定key value:del key redis的数据结构:key+value 其中key都是字符串 value有5种不同的类型:字符串类型、哈希类型、列表类型、集合类型、有序集合类型 1.字符串类型: 添加:set key value 获取:get key 删除:del key 2.哈希类型 添加:hset key field value 获取:h
2021-07-04 10:45:15
218
原创 使用反射封装DBUtils类中的通用操作类
包括增删改查、统计数据。 使用到了Druid数据库连接池技术、ConverUtils工具类进行类型转换。 需要在pom.xml里导入依赖 MySQL驱动依赖 <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.47</version>
2021-05-25 22:17:09
187
1
原创 Java中的反射机制------框架设计的灵魂
一、了解反射机制 Java中关于反射的类都在java.lang.reflect包。 1. 框架 半成品软件,可以在框架的基础上进行软件开发,简化代码。学习框架并不需要了解反射,但要是自己写一个框架,就需要对反射有一个深入的学习。 2. 反射机制 反射是类的自省,通过反射可以动态获取类中的方法、构造方法、属性等类的内容。也就是说,对于任意一个类或对象,能够动态获取到这个类的所有属性和方法并可以动态调用对象方法的功能称为反射机制。 我们以往编写的代码都是编译期代码,这些代码是提前写好,固定的代码; 反射在运行
2021-05-25 20:59:08
204
1
原创 EL&JSTL
JSTL(JSP标签库) JSP的标准标签库。JSP的标签和HTML的标签类似,<c:set></c:set>,JSP的每个标签背后都有一个强大的类支持。 作用:用于简化和替换jsp页面的java代码。 使用步骤: (1)导入jstl相关jar包 (2)引入标签库<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> (3)使用标签 核心jstl标签的使用 (1)out标签,用于向页面
2021-05-23 10:15:29
123
原创 了解JSP以及JSP的内置对象
一、JSP入门了解 1.概念:Java Server Pages(java服务器端页面) JSP是在HTML文件中嵌入Java代码,在页面中可以使用Java代码执行动态内容,使用HTML代码执行静态内容。 Java代码负责功能处理并动态生成结果,HTML对页面及Java生成的结果进行美化及展示。 2.原理:JSP本质上是一个Servlet 3.JSP的执行过程 先将.jsp文件转义为.java文件,再编译成.class文件,交给JVM处理执行。 jsp页面在一次执行时,效率低。 4.JSP脚本:JS
2021-05-22 16:57:26
213
原创 会话技术-----Session
概念:服务器会话技术,在一次会话的多次请求之间共享数据,将数据保存在服务器端的对象中。 Session的常用方法: 1.获取HttpSession对象:HttpSession session = request.getSession(); 2.向Session中设置属性:void setAttribute(String name, Object value) 3.从Session中获得一个属性的值:Object getAttribute(String name) 4.获得Session的ID:Sess.
2021-05-22 16:13:17
245
原创 会话技术-----Cookie
会话技术: 1.会话:一次会话中包含多次请求和响应。 2.一次会话:浏览器给服务器第一次发送请求,会话建立,直到有一方断开。 3.功能:在一次会话的范围内的多次请求之间,共享数据。 4.有两种方式: (1)客户端会话技术:Cookie (2)服务器端会话技术:Session Cookie 1.概念: 客户端会话技术,将数据保存在客户端。 2.简单使用(步骤): (1)创建Cookie对象 Cookie c=new Cookie(String name,String value); (2)发送Cookie
2021-05-16 11:02:23
125
原创 ServletContext对象、文件下载案例
ServletContext对象 代表整个web应用,可以和程序的服务器进行通信 如何来获取: (1)通过request对象:request.getServletContext(); (2)通过HttpServlet获取:this.getServletContext(); 功能: (1)获取MIME类型:在互联网通信过程中定义的一种文件数据类型。 格式:格式: 大类型/小类型 text/html image/jpeg ServletContext context=this.getSer
2021-05-08 13:45:50
136
原创 Response对象
Response对象 功能:设置响应消息。 设置响应行 格式:HTTP/1.1 200 ok 设置状态码:setStatus(int sc) 设置响应头:setHeader(String name, String value) 设置响应体: 步骤: 1.获取输出流。 字符输出流:PrintWriter getWriter() 字节输出流:ServletOutputStream getOutputStream() 2.使用输出流:将数据输出到客户端浏览器。 具体应用: 1.重定向:资源跳转的方
2021-05-08 12:00:09
150
原创 HTTP协议----响应消息
HTTP协议----响应消息 之前我们学习过请求消息,是指客户端发送给服务器端的数据。由4部分组成: 1.请求行 2.请求头 3.请求空行 4.请求体 对应的响应消息指的是:服务器端发送给客户端的数据,也是由4部分组成。 响应行 1.组成:协议/版本 响应状态码 状态码描述 HTTP/1.1 200 OK 2.响应状态码:服务器告诉客户端浏览器本次响应和请求的一个状态。 (1)状态码都是3位数字。可以分为5类。 第一种:1xx 服务器接收客户端消息,但没有接收完成,等待一段时
2021-05-08 11:33:09
254
原创 request案例---用户登录
要求: 1.编写login.html。包含两个输入框,分别是用户名和密码 2.使用Druid数据库连接池技术,操作mysql里数据库relogin的tbl_user表 3.使用JdbcTemplate技术封装JDBC 4.登录成功跳转到successServlet展示:登陆成功!用户名,欢迎您 5.登录失败跳转到failServlet展示:登陆失败,用户名或密码错误! 实现过程: 1.创建javaEE项目,编写login.html,导入配置文件,jar包 login.html中form表单的action路
2021-04-29 17:13:43
497
原创 Request
Request 1. request对象和response对象的原理: (1)两个都是由服务器创建的,我们来使用它 (2)request是用来获取请求消息的,response是用来获取响应消息的 2. request对象继承体系结构: ServletRequest 接口 继承 HttpServletRequest 接口 实现 org.apache.catalina.connector.RequestFacade 类(tomcat) 3. request功能: 可以获取请求消息数据 (1) 获取请求行数据
2021-04-28 23:04:13
119
原创 HTTP相关知识-----请求消息
HTTP 1.概念:Hyper Text Transfer Protocol 超文本传输协议 传输协议:定义了客户端和服务器端通信时,发送数据的格式。 优点: 1.基于TCP/IP的高级协议,TCP是相对于安全的,需要三次握手才能发送数据。 2.默认的端口号:80 3.基于请求/响应模型,一次请求对应一次响应。 4.无状态的:每次请求之间相互独立,不能交互数据。 HTTP的历史版本: 1.HTTP1.0:每次请求都会建立新的连接。
2021-04-28 11:28:13
489
3
原创 Servlet
有关Servlet:server applet 1. 概念:运行在服务器端的小程序 Servlet就是一个接口,定义了java类被浏览器访问到的规则,换句话说就是被tomcat识别的规则;将来我们定义一个类,实现Servlet接口,重写其中的方法。 2. Servlet的快速入门 创建一个javaEE项目 定义一个类,实现Servlet接口 public class ServletDemo implements Servlet 实现接口中的方法 配置Servlet //在web.xml里进行配置 &l
2021-04-25 21:55:25
193
原创 数据库连接池技术、Spring JDBC
多点赞、多评论、谢支持~ 数据库连接池 1.基本理解: 其实就是一个容器集合,存放数据库连接的容器。 当系统初始化好之后,容器被创建,容器会申请一些连接对象,当用户来访问数据库时,从容器中获取连接对象,用户访问完之后,将连接对象还给容器。 2.使用数据库连接池的好处:节约资源、访问效率高 3.实现: (1)有标准的接口 DataSource 存放于javax.sql包下。具体方法有: 获取连接:Connection getConnection() 归还连接:Connection.close() 如果连
2021-04-08 09:00:39
177
原创 JDBC
JDBC 1.概念: Java Database Connectivity Java数据连接 Java语言操作数据库 JDBC的本质:其实是sun公司定义的一套操作所有关系型数据库的规则(接口)。各个数据库厂商去实现这套接口,提供数据库驱动jar包。我们可以使用这套接口(JDBC)编程,真正执行的是驱动jar包中的实现类。 2.jdbc访问数据库的步骤: 加载驱动----创建lib目录,导入驱动jar包,右键Add As Library 注册驱动 创建连接对象 Connection 定义sql语句
2021-04-07 14:07:18
104
原创 数据库操作(二)
数据库中的约束 1.概念:对表中的数据进行限定,保证数据的正确性、有效性和完整性。 2.分类: (1)主键约束:primary key (2)非空约束:not null (3)唯一约束:unique (4)外键约束:foreign key *主键约束: 含义:非空且唯一 一张表只能有一个字段为主键,主键就是表中记录的唯一标识。 在创建表时,添加主键约束 create table stu( id int **primary key**, 给id添加主键约束 name varchar(
2021-04-05 19:16:25
163
1
原创 java基础面试(有关集合一)
1.java中的容器有哪些? java中的容器分为Collection接口和Map接口两类。 Collection接口分为List接口和Set接口。 List接口的实现类有: ArrayList LinkedList Vector 线程安全 Stack 线程安全 Set接口的实现类有: HashSet LinkedHashSet TreeSet Map接口的实现类有: HashMap LinkedHashMap TreeMap ConcurrentHashMap 线程安全 HashTable 线程
2021-04-02 12:15:38
159
原创 java基础面试(三)
1.什么是异常? 异常Exception是指程序在运行时,由于输入错误、网络或者程序逻辑等问题,运行过程中出现的问题。出现异常时,程序会暂时中断处理执行,并根据产生异常的原因,创建相对应的异常对象,抛出给JVM捕获处理。 在java中,主要使用try catch finally throw throws 来处理异常。 2.try catch finally throw throws的作用分别是什么? (1)try 用于引发异常,将可能出现问题的代码存放在try块中。 (2)cat
2021-04-01 22:07:11
92
1
原创 java基础面试(二)
1.什么是构造方法? 构造方法名与类名相同 没有返回值,且不能用void声明构造方法 创建对象时,使用new 关键字调用执行(显式调用) 2.构造方法的作用是什么? 主要作用是完成创建对象的初始化工作; 一个类即使没有生命构造方法,java也会提供默认的无参构造; 如果我们为类提供了构造方法,那么默认的无参构造就会消失; 3.什么是多态? 顾名思义,表示一个对象的多种状态。具体表现为父类的引用指向子类的实例。 多态的特点:不能通过父类去调用只在子类中存在而不在父类中存在的方法;对象类型和引用类型之间必须
2021-03-31 21:42:56
181
2
原创 java基础面试(一)
1.java中常见的数据类型有哪些? java中常见的数据类型有8种。byte字节型,内存中占一个字节;short短整型,占两个字节;int整型,占4个字节;long长整型,占8个字节。 float单精度浮点型,占4个字节;double双精度浮点型,占8个字节。 char字符型,占2个字节;boolean布尔型 2.java语言的优势有哪些? 面向对象(封装,继承,多态) 可靠性 安全性 平台无关性(java虚拟机实现) 支持多线程 支持网络编程 执行方式为解释型执行+编译执行并存 3.说明jdk1.8
2021-03-31 20:43:38
169
2
原创 数据库操作(一)
数据库基本操作 一、建库建表 1.创建数据库相关操作 (数据库名为 studentdb) //1.创建数据库 create database studentdb; //2.使用数据库 use studentdb; //3.删除数据库 drop database studentdb; 2.创建表及其他操作 //1.表名为tbl_stu设置stu_id为主键、不能为空、自增 create table tbl_stu( stu_id int not null primary key
2021-03-27 21:02:24
249
1
原创 Lambda表达式
Lambda表达式 1. 函数式编程思想与面向对象编程思想的区别: (1) 面向对象的思想: 做一件事情,找一个能解决这个事情的对象,调用对象的方法,完成事情. (2) 函数式编程思想: 只要能获取到结果,谁去做的,怎么做的都不重要,重视的是结果,不重视过程 2. Lambda表达式的标准格式 Lambda表达式由3部分组成:①一些参数 ②一个箭头 ③一段代码 格式:(参数类型 参数名称) -> { 代码语句 } 格式说明: 小括号内的语法与传统的参数列表相同:无参数则留空;多个参数则用逗号隔开
2021-02-21 21:10:35
256
原创 线程池
线程池的使用 java里线程池的顶级接口是java.util.concurrent.Executor,但严格意义上讲Executor并不是一个线程池,只是一个执行线程的工具。真正的线程池接口是java.util.concurrent.ExecutorService。 在java.util.concurrent.Executor线程工厂类中提供了一些静态工厂,用于创建线程池。建议使用Executors工程类来创建线程池。 public static ExecutorService newFixedThrea
2021-02-21 20:41:40
109
原创 等待唤醒机制
等待唤醒机制 一、线程状态概述 在线程的生命周期中,一共有6种状态。 NEW(新建状态):线程刚被创建,还未启动,没有调用start()方法 Runnable(可运行):线程可以在java虚拟机中运行的状态 Blocked(阻塞状态):当一个线程试图获取对象锁,而此时对象锁被其他线程占有时,就会进入阻塞状态;如果获取到了对象锁,就会进入Runnable状态 Waiting(无线等待):一个线程在等待另一个线程执行一个唤醒(notify)动作时,就会进入无线等待状态,进入这个状态是不能自动唤醒的。 Time
2021-02-21 18:44:51
152
原创 线程安全
线程安全 一、线程安全 多线程访问共享数据会产生线程安全问题 线程安全问题实例: 如果有多个线程在同时运行,而这些线程可能同时运行这段代码。程序每次运行结果和单线程运行的结果是一样的,而且其他的变量的值也和预期的是一样的,就是线程安全的。 模拟电影院买票,多个窗口卖100张票(采用实现Runnable接口的方法) 模拟买票: //模拟卖电影票 public class RunnableImpl implements Runnable{ //票数100张 private int tic
2021-02-20 20:35:27
112
2
原创 创建线程
线程 1.1基础概念 并发:指多个事件在同一时间段内发生。(cpu交替执行) 并行:指多个事件在同一时刻发生。(cpu同时执行) 进程:是指一个内存中运行的应用程序,每个进程都有独立的内存空间,一个应用程序可以同时运行多个进程。进程也是程序的一次运行过程,是系统运行程序的基本单位。 线程:是进程中的一个执行单元,一个进程中至少有一个线程。 一个程序运行后至少有一个进程,一个进程中可以包含多个线程 线程调度分为分时调度和抢占式调度。java使用的就是抢占式调度,谁的优先级高谁就拥有CPU。 1.2
2021-02-20 19:42:42
131
2
原创 异常
异常 1.1有关异常 异常的概念:指的是程序在执行过程中,出现的非正常的情况,最终会导致JVM的非正常停止。 在java等面向对象编程中,异常本身是一个类,产生异常就是创建异常并抛出一个异常对象。java处理异常的方式是中断处理。 异常指的并不是语法错误,语法错了,编译不通过,不会产生字节码文件,根本不能运行。 1.2异常体系 异常的根类是java.lang.Throwable,其下有两个子类java.lang.Error 与 java.lang.Exception,平常所说的异常指java.lang
2021-02-19 20:48:52
108
原创 List接口
List接口 一、关于List集合 在java.util包中,继承于Collection接口 允许存放重复数据而且是有序存放(元素进入集合的顺序),通过元素的equals方法,来判断两个元素是否重复 在集合中存在下标,通过下标访问其中的元素 二、常用方法 List作为Collection集合的子接口,不但继承了Collection接口中的全部方法,而且还增加了一些根据元素索引来操 作集合的特有方法,例如: 往集合中添加元素:add(E) 根据下标获取元素:get(index) 移除一个元素:remov
2021-02-02 21:52:20
131
1
原创 HTML5基础知识点(二)
HTML5基础知识点 一、表格标签(重点) 1.表格标签 Table 表格外框 Caption 设置表格标签 Thead 表格头部 Tbody 表格身体 Tr 行 Td 单元格 Th 表头 2.表格属性 border:表格边框 width:设置表格的宽度 height:设置表格的高度 align:设置表格的对齐方式(left/center/right) cellspacing:设置单元格之间的间距 cellpadding:设置单元格的填充距离 效果图如下:
2021-01-31 21:35:41
194
原创 HTML基础知识点(一)
HTML5 基础知识点 一、什么是HTML HTML是做网站的、Web开发、互联网生态开发的。目前我们使用的都是HTML5,支持传统的PC端开发,还支持移动端开发以及微应用开发,从而代替了一部分传统的移动端开发技术。 HTML:Hyper Text Markup Language,**超文本标记语言**,也就是说HTML这门语言是由标签组成的。 二、HTML开发 1.HTML文件的骨架: (1) html是根标签 (2) head是头标签 (3) title是标题标签 (4) body
2021-01-31 20:23:36
156
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人