- 博客(25)
- 收藏
- 关注
原创 Servlet原理和Tomcat原理的知识总结
如图,这是如果想自定义Tomcat并且想要实现的话,需要做的流程:首先,Tomcat启动,先获取两样东西,一个是通过扫描项目文件夹下的所有Servlet文件以获取的类的全路径名(Java反射用到过),二是获取到Servlet文件当中的@WebServlet 注解括号里的配置信息(Servlet 的访问路径),使用这两个东西来生成Servlet容器(本质是HashMap),key值就是Servlet的访问路径,value值是Servlet 对象(由全路径名生成),这个Servlet容器生成后等待发挥作用。
2025-12-04 23:33:05
829
原创 Socket编程入门与知识总结:从基础到线程池优化
首先我们要了解计算机网络这门课程中介绍的计算机各部分的分层,如图所示:应用层,表示层,会话层传输层,网络层 ,,数据链路层,物理层。其中应用层,表示层,会话层的功能要重点了解:产生数据,并且提供相应的传输协议,比如http,DNS等。表示层:对数据进行进一步操作,如加密,压缩等。会话层:负责建立链接。其中我们要讲的Socket位于会话层中。Socket本质就是操作系统提供的一组编程接口,用于在不同主机(或同一主机)的进程之间建立网络连接、传输数据。引入子线程就完美了吗?并不是。
2025-12-03 13:48:10
1269
原创 Servlet开发中JDBC的使用方法
使用DriverManager来注册驱动,然后使用Connection来连接数据库,链接完之后就可以借助Statement来用SQL语句编写操作数据库了(这里注意,),查询操作首先要使用ResultSet封装查询结果集,系统之后会处理查询结果,完成一系列任务之后,要。,增删改操作连接完数据库,系统处理完操作后就可以关闭了,不用使用ResultSet。(2)Connection:数据库连接类,用于进行用户名、密码、url,数据库连接。(4)ResultSet:查询结果集,可以封装查询结果。
2025-12-02 20:31:56
600
原创 数据库的增删改查操作(SQL语句)
多条:insert into 表名(列1,列2,列3......)values('值1','值2','值3......'),('值1','值2','值3......'),('值1','值2','值3......')insert into 表名(列1,列2,列3......)value('值1','值2','值3......')常用的有max(),min(),count(),avg()这四个函数,写在查询字段的位置,括号里面写字段。有三种连接方式:内连接(默认),左连接,右连接。第二种:truncate。
2025-11-21 23:34:48
427
原创 数据库基本知识简单总结
由于一个班级有多个学生,多个学生在一个班级内,所以这是一个一对多关系,“一”指班级表,“多”指学生表,关联字段cid放在学生表中让这两张表产生联系。如图,左边的表和右边的表可以通过id联系起来,id分别是这两个表唯一标识符,所以可以添加一个关联字段cid来把这两个表联系起来。学生可以选多门课程,一门课程也可以被多个学生选,所以这是一个多对多关系,这时我们不能仅仅依靠关联字段联系两个表,要单独创建一个。的数据才能设置自动递增。,其中,如果一个栏位的各行数据都不相同,称为这个表的。关系指的是表与表之间的关系。
2025-11-20 21:14:51
746
原创 Java基础部分常见面试题Part4
throws:用来声明一个方法可能产生的所有异常,不做任何处理而是将异常往上传,谁调用我我就抛给谁。用在方法体内,跟的是异常对象名;throw 则是抛出了异常,执行 throw 则一定抛出了某种异常。在switch语句中,若case分支后未加break,程序会继续执行下一个case的代码,直到遇到break或switch结束。hashCode():返回对象的哈希码(配合equals使用,重写equals需同时重写hashCode)。getClass():返回对象的运行时类(Class对象),不可重写。
2025-11-17 23:20:21
419
原创 Java中HashSet和LinkedHashSet的常用方法
且向HashSet集合中添加元素,HashSet add方法实质是map全局变量调用了put方法,将数据存到了key,因为HashMap的 key不允许,所以HashSet添加的元素也不允许重复。③.remove(Object o): 删除Set集合中的obj对象,删除成功返回true,否则返回false。①.add(Object o):向Set集合中添加元素,不允许添加重复数据。⑥.iterator():返回在此Set中的元素上进行迭代的迭代器。使用 size() 方法获取集合中元素的数量。
2025-11-16 11:59:57
686
原创 Java基础部分常见面试题Part3
可变性:String:不可变(底层 char 数组被final修饰),修改会创建新对象。若不存在,则在常量池创建 “123” 对象,引用赋值给s,产生 1 个对象。|(按位或):两个二进制位有一个为 1 则结果为 1,否则为 0。^(按位异或):两个二进制位不同则结果为 1,相同则为 0。>>(右移):将二进制位向右移动指定位数,左边补符号位(正数补 0,负数补 1)。&(按位与):两个二进制位都为 1 则结果为 1,否则为 0。~(按位非):对二进制位取反(0 变 1,1 变 0)。
2025-11-15 22:50:25
502
原创 Java基础部分常见的面试题Part2
default不写任何修饰符时的默认权限,只有同包的类可以访问,不同包的类(即使是子类)也不能访问。(该对象在catch数组当中,catch数组是一个从-128-127的数组),不会重新创建对象,运行时异常一般是由程序逻辑错误引起的,程序应该从逻辑角度尽可能避免这类异常的发生。非运行时异常从程序语法角度讲是必须进行处理的异常,如果不处理,程序就不能编译通过。protected同包中的类可以访问,不同包的子类可以访问,,在接口中不能有方法的实现,抽象类可以有非抽象的方法。的方法默认是public,
2025-11-14 23:13:53
292
原创 java中的反射相关知识讲解
能够获取并分析类信息的能力叫做反射,类的信息指属性、方法、构造器等等。(1)Java反射机制的核心是在程序运行时动态加载类并获取类的详细信息,从而操作类或对象的属性和方法。本质是JVM得到类对象之后,再通过类对象进行反编译,从而获取对象的各种信息。(2)Java属于先编译再运行的语言,程序中对象的类型在编译期就确定下来了,而当程序在运行时可能需要动态加载某些类,这些类因为之前用不到,所以没有被加载到JVM。通过反射,可以在运行时动态地创建对象并调用其属性,不需要提前在编译期知道运行的对象是谁。
2025-11-13 21:26:34
1122
原创 Java中对IO流的简单介绍
(3)int read(byte[] b, int off, int len):从输入流中读取最多 len 个字节的数据,并将其存储在数组 b 中,从偏移量 off 开始存储,返回实际读取的字节数,如果到达流的末尾则返回 -1。常用方法:(1)int read():从输入流中读取一个字节的数据,返回值为读取的字节(范围是 0 - 255),如果到达流的末尾则返回 -1。字符流:一般指文本,我们能读的懂的都可以认为是字符流。(2)void write(byte[] b):把数组b 中的所有字节写入到文件中。
2025-11-12 21:40:09
1200
原创 Java中的lambda表达式
在面向对象的编程中强调,必须通过对象的形式来做事情。lambda表达式就是的体现。函数式思想指尽量忽略对象的复杂语法,。
2025-11-11 20:12:43
375
原创 Java中的错误和异常及其处理方法
在本程序中,主方法不处理任何异常,而交给JAVA中最大头JVM,所以如果在主方法使用了throws关键字,则表示一切异常交给JVM进行处理。throw关键字作用是抛出一个异常,抛出的时候是一个异常类的实例化对象,在异常处理中,try语句要捕获的是一个异常对象,那么此异常对象也可以自己抛出。,finally 异常中总能执行的代码区,final 用于定义常量的关键字,finalize() 垃圾回收,该方法是系统调用,不用程序员手动调用。(4)程序执行时先catch子类异常再catch父类异常。
2025-11-10 21:28:49
555
原创 Java抽象类和接口的定义及其区别
1.abstract修饰的类叫做抽象类,抽象类一定是父类,抽象类不能做子类。2.抽象类不能实例化,但是有构造方法。3.abstract修饰的方法叫做抽象方法,抽象方法不带方法体,不用在抽象类当中实现,子类必须重写实现父类的抽象方法。4.abstract抽象类和抽象方法不能实例化 ,用在多态上面。5.抽象方法只能使用在抽象类当中,普通类当中不能使用抽象方法。6.abstract和final不能同时使用,final修饰方法不能被重写 final修饰类不能被继承。7.abstract。
2025-11-09 09:09:37
244
原创 Java中HashMap和HashTable的常用方法
②.get(Object key) 返回指定键所映射的值,没有该key对应的值则返回 null,即获取key对应的value。⑥:remove(Object key) 删除Map集合中键为key的数据并返回其所对应value值。①.put(K key, V value) 将键(key)/值(value)映射存放到Map集合中。③. size() 返回Map集合中数据数量,准确说是返回key-value的组数。⑦:containsKey(Object key) Hashmap判断是否含有key。
2025-11-08 16:55:12
429
原创 Java中ArrayList和LinkedList常用的一些方法总结
⑤.set(int i, Object element) 使用元素element替换索引i位置的元素,并返回被替换的元素。⑩.remove(Object o) 从List集合中移除第一次出现的指定元素,移除成功返回true,否则返回false。⑨.remove(int index) 移除列表中指定位置的元素,并返回被删元素,删除位置后面的元素(如果有)向前移动。④.add(int index, Object element) 在列表的指定位置(从0开始)插入指定元素。
2025-11-07 22:59:42
364
原创 Java中的map集合和set集合各类型介绍
(5)初始容量和负载因子:默认初始容量:11,默认负载因子:0.75。(输入和输出顺序一样),链表保证元素有序,哈希表保证元素唯一。List 保证按插入顺序排序,Set 存储和取出顺序不一致。(1)底层是链表 + 数组,JDK8 以后加入了红黑树,(2)元素顺序与添加顺序无序(不一致),不允许重复。(2)存储的是 key-value 类型的数据。(5)key 和 value 都允许为空,但是。(1)有序的 key-value 集合,通过。:无序指的是插入顺序和取出顺序是不一致的。
2025-11-06 23:33:51
356
原创 Java里的集合介绍和List集合各种类的介绍
增删快是因为LinkedList内部是双向链表结构,每个节点包含自身数据,指向前一个节点的引用和指向后一个节点的引用。查询慢是因为若要查询某个元素,必须从链表的头节点或尾节点开始,逐个遍历节点。Java集合就像一种容器,可以把多个对象(实际上是对象的引用)“丢进”该容器中。,ArrayList为了能存储各种不同的数据类型,创建了Object类型的数组,因为。,但数组可以是基本数据类型,也可以是引用数据类型。,子类可以向上转型,以便都可以放在集合里面。1.ArrayList 是集合的一个实现类。
2025-11-05 21:17:18
298
原创 Java语言static,this和super关键字
static是 Java 中的一个关键字,用于修饰类的成员(变量、方法、代码块)和内部类,它的核心作用是将成员与类本身关联,被 static 修饰的成员属于。Java 中为解决变量的命名冲突和不确定性问题,引入关键字 this 代表其所在方法的当前对象的引用。被static修饰的变量是所有对象共享同一份的静态变量,一个对象修改后,其他对象访问的是修改后的值。类加载时自动执行,且只执行一次(无论创建多少对象)。,无需创建类的实例。,调用父类当中的方法和变量。被static修饰的方法属于类,可通过。
2025-11-04 21:40:29
215
原创 Java语言中String经常会被调用的方法总结
lastIndexOf(int ch)返回指定字符或子串在字符串中最后一次出现的索引(从右往左查找)。indexOf(int ch)返回指定字符或子串在字符串中第一次出现的索引(从左往右查找)。作用:去除字符串两端的空白字符(包括空格、制表符\t、换行符\n等),中间的空白字符保留。作用:判断字符串中是否包含指定的子串 s,包含返回 true,否则返回 false。作用:将参数 str 拼接到原字符串末尾,返回新的字符串(原字符串不变)。作用:返回字符串中指定索引位置的字符(索引从 0 开始)。
2025-11-03 22:41:46
246
原创 Java语言的泛型
泛型,顾名思义,是指泛指一切类型的意思,那么我们什么时候会用到泛型呢?如图所示,这是一个栈类,类里面可以存放栈的属性,并且定义了出栈和入栈的方法。目前arr数组的数据类型是int,假如我们想把字符串存进去该怎么做呢?我们可以把arr的类型改成String,但是那样的话又存不了整形,改来改去很麻烦,那么问题来了,怎么解决这种麻烦呢?于是Java引入了泛型。
2025-11-03 22:10:17
387
原创 Java语言的包装类
同理,这里Integer类型的a1会自动拆箱,转换成int类型,之后就是基本数据类型使用==比较值是否相等。这里Integer类型的a1会自动拆箱,转换成int类型,之后就是基本数据类型使用==比较值是否相等。(该对象在catch数组当中,catch数组是一个从-128-127的数组),不会重新创建对象,2.10在-128---127之间,所以a1和b1的地址相同。自动拆箱:包装类---------->基本数据类型。自动装箱:基本数据类型-------->包装类。,并返回新对象的地址。
2025-11-02 23:25:23
243
原创 Java基础部分常见的面试题Part1
整型有byte(1字节),short(2字节),int(4字节),long(8字节)四种,浮点型有float(4字节),double(8字节)两种,字符型有char(2字节)一种,布尔型有boolean(true或false)一种。,类是对象的模版,多个对象可以基于同一个类创建,但各自的属性值独立,互不影响。,在Object类当中的equals()方法用的是==比较地址,基本数据类型直接存储数据值,引用数据类型存储的是对象在内存中的。的方法,目的是改变或扩展父类方法的行为,以适应子类的特定需求。
2025-11-02 17:03:22
141
原创 Java语言中的final关键字
比如String类是final类,这意味着不允许任何人定义 String的子类。换言之,如果有一个String的引用,它引用的一定是一个String 对象,而不可能是其他类的对象。1.被final修饰的常量,一定要在定义时就赋上初始值,且赋完值之后不能被修改,也就是只能被赋值一次。3.被final修饰的类,不能被继承,例如String类就是被final关键字修饰的。2.被final修饰的方法,在被继承之后不能被重写。final关键字可以用来修饰。,但是类里面的成员变量不会。
2025-11-02 16:42:39
145
原创 Java语言中的类与对象,继承和多态
Java语言和C语言最大的不同在于,而C语言是面向过程的。比如下面的C语言伪码:上面的伪码显示程序的main方法中调用了run和eat两个方法,而a,sex,float都是全局变量,所以调用run和eat两个方法之后,a和sex的值就永久发生了改变。这就可以把调用方法看作是一个个过程,这些过程把全局变量的值做出来修改。
2025-11-01 11:58:55
752
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅