Java基础
文章平均质量分 70
java语言基础
?abc!
努力学习,天天向上
展开
-
过滤器和拦截器的使用和原理
Component@Overridelog.info("【过滤器】初始化");@Overridelog.info("【过滤器】开始执行");log.info("【过滤器】耗时:" + (System.currentTimeMillis() - startTime)+"ms");log.info("【过滤器】结束执行");@Overridelog.info("【过滤器】销毁");原创 2024-08-29 21:27:35 · 636 阅读 · 0 评论 -
try-catch-finally-return的执行顺序和try-with-resource语法糖
总结如下几条情况·try-catch-finally都有return语句时,没有异常时,返回值是finally中的return返回的·。try-catch都有return语句时,没有异常时,返回值是try中的return返回的try块中抛出异常,try、catch和finally中都有return语句,返回值是finally中的return。try块中抛出异常,try和catch中都有return语句,返回的catch中return值。原创 2024-05-08 06:15:00 · 1758 阅读 · 2 评论 -
java的几种对象: PO,VO,DAO,BO,POJO
要知道这个对象是什么O,要看具体的使用环境,在不同的层、不同的应用场合,对象的身份也不一样,而且对象身份的转化也是很自然的。以自己的角色举例,你在不同的关系中处于不同的角色:哥哥、弟弟…在开发中,常使用 BeanUtils.copyProperties() 进行PO,VO,DTO等对象的复制和转换。原创 2023-11-05 06:15:00 · 1891 阅读 · 0 评论 -
循环执行某段代码,待某种条件满足后停止循环 java原始Timer实现
使用Timer即可,下述是示例代码运行结果。原创 2023-10-21 15:20:16 · 1092 阅读 · 0 评论 -
Date、LocalDateTime、LocalDate、LocalTime使用及相互转换
关于Date的使用这里就不赘述了,着重说明后面三者及转换和特点。原创 2023-08-20 11:57:27 · 1451 阅读 · 0 评论 -
异步请求CloseableHttpAsyncClient的使用
有时候,我们需要,httpclient在4.0后提供的api可以实现这种功能。原创 2023-04-04 19:58:53 · 2419 阅读 · 0 评论 -
回调函数的使用
回调函数的使用原创 2023-03-25 21:46:23 · 1052 阅读 · 0 评论 -
获取异常的详细内容:通过Exception e,e获取
获取异常的详细内容原创 2023-01-17 06:15:00 · 1105 阅读 · 0 评论 -
获取Java集合中泛型的Class对象
获取Java集合中泛型的Class对象原创 2023-01-07 06:15:00 · 4453 阅读 · 1 评论 -
将 2022-11-02T21:57:42.505+08:00这种带时区 格式的日期转换为毫秒
将 2022-11-02T21:57:42.505+08:00这种带时区 格式的日期转换为毫秒原创 2022-12-29 19:36:40 · 1150 阅读 · 0 评论 -
java反射所需要了解的基本知识点
java反射所需要了解的基本知识点原创 2022-12-07 06:15:00 · 777 阅读 · 0 评论 -
Java并发编程—CountDownLatch、Semaphore和CyclicBarrie
java并发编程所常用得三种类原创 2022-10-04 06:15:00 · 167 阅读 · 0 评论 -
策略模式在不同情况下的使用方法
策略模式原创 2022-09-12 06:15:00 · 676 阅读 · 0 评论 -
Object 类说明
Object类的简单说明原创 2022-08-29 22:17:09 · 223 阅读 · 0 评论 -
AtomicInteger的使用
在Java语言中,,在使用的时候,不可避免的会用到synchronized关键字。原创 2022-08-21 06:15:00 · 545 阅读 · 0 评论 -
Field的使用
Field是一个类,位于Java.lang.reflect包下,在Java反射中Field用于获取某个类的属性或该属性的属性值。原创 2022-08-19 21:25:19 · 4565 阅读 · 0 评论 -
线程池的使用(结合Future/Callable使用)
博文原创 2022-08-02 09:40:20 · 2705 阅读 · 1 评论 -
java数据类型:enum
枚举enum-modifiers 表示枚举的修饰符主要包括 public、private 和 internal;enumname 表示声明的枚举名称;enum-base 表示基础类型;enum-body 表示枚举的成员,它是枚举类型的命名常数。之后便可以通过枚举类型名直接引用常量,如 SexEnum.male、Color.RED对于枚举类的比较。 不需要调用 equals 函数, 直接使用 == 比价枚举中的一些方法:参考博客:http...原创 2022-07-10 06:15:00 · 257 阅读 · 0 评论 -
这一篇解决会遇到的java基础的大多数问题(不包括IO、集合、网络编程)
1 何为编程编程就是让计算机为解决某个问题而使用某种程序设计语言编写程序代码,并 终得到结果的过程。2 什么是JavaJava是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了 C++里难以理解的多继承、指针等概念Java语言具有功能强大和简单易用两个特征3 jdk1.5之后的三大版本Java SE(标准版): Java SE 以前称为 J2SE。它允许开发和部署在桌面、服务器、嵌入式环境和实时环境中使 用的 Java 应用程序。Java SE 包含了支持 JavaWeb 服务开发原创 2022-02-15 09:24:58 · 331 阅读 · 0 评论 -
tomcat的一些问题
一:Tomcat是什么?是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问 用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。二:Tomcat的缺省端口是多少,怎么修改第一步:找到Tomcat目录下的conf文件夹第二步:进入conf文件夹里面找到server.xml文件第三步:打开server.xml文件,在server.xml文件里面找到Connector标签,将其的8080端口改成你想要的端口<Connector port="80原创 2022-02-05 15:43:25 · 1384 阅读 · 0 评论 -
关于java异常的一些问题
一:Error 和 Exception 区别Error 类型的错误通常为虚拟机相关错误,如系统崩溃,内存不足,堆栈溢出 等,编译器不会对这类错误进行检测,JAVA 应用程序也不应对这类错误进行捕获,一旦这类错误发生,通常应用程序会被终止,仅靠应用程序本身无法恢复;Exception 类的错误是可以在应用程序中进行捕获并处理的,通常遇到这种错 误,应对其进行处理,使应用程序可以继续正常运行。二: JVM 是如何处理异常的在一个方法中如果发生异常,这个方法会创建一个异常对象,并转交给 JVM, 创建异常原创 2022-02-05 14:52:11 · 349 阅读 · 0 评论 -
通过这一篇清楚集合(List、Set、Map)大部分问题总结
一:集合概述集合框架:用于存储数据的容器。1.1 集合的特点1)对象封装数据,对象多了也需要存储。集合用于存储对象。对象可以用于封装数据,当对象非常多时九需要使用集合去存储对象2)对象的个数确定可以使用数组,对象的个数不确定的可以用集合。因为集合是可变长度的。当数据的个数明确,使用数组可以节省空间;当数据的个数不明确时,就需要使用集合存储,集合长度是可变的。1.2 集合和数组的区别1)长度数组是固定长度的;集合可变长度的。2)存储类型数组可以存储基本数据类型,也可以存储原创 2022-01-30 14:20:28 · 2635 阅读 · 0 评论 -
java8和java9的对比
一:Java9比Java8的改进1)引入了模块系统:采用模块化系统,这样的话这些应用程序只需要所需的那部分JDK模块, 而非是整个JDK框架了,减少了内存的开销。2)引入了一个新的package:java.net.http;提供了对Http访问很好的支持,不仅支持 Http1.1而且还支持HTTP2。3)引入了jshell这个交互性工具,让Java也可以像脚本语言一样来运行,可以从控制台启动 jshell ,在jshell 中直接输入表达式并查看其执行结果。4)增加了List.of()、Set.of原创 2022-01-29 13:49:27 · 3511 阅读 · 1 评论 -
Java序列化简述
一:概述简单来说就是:保存(持久化)对象及其状态到内存或者磁盘出现原因:Java 平台允许我们在内存中创建可复用的 Java 对象,但一般情况下,只有当 JVM 处于运行时,这些对象才可能存在,即,这些对象的生命周期不会比 JVM 的生命周期更长。但在现实应用中,就可能要求在JVM停止运行之后能够保存(持久化)指定的对象,并在将来重新读取被保存的对象。Java 对象序列化就能够帮助我们实现该功能序列化对象以字节数组保存,所以静态成员不保存使用 Java 对象序列化,在保存对象时,会把其状态保存为原创 2022-01-28 16:15:49 · 737 阅读 · 0 评论 -
java补充:网络编程
1 概述计算机网络:是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统,网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统网络编程在网络通信协议下,实现网络互连的不同计算机上运行的程序间可以进行数据交换网络编程三要素IP地址要想让网络中的计算机能够互相通信,必须为每台计算机指定一个标识号,通过这个标识号来指定要接收数据的计算机和识别发送的计算机,而lP地址就是这个标识号。也就是设备的标识端口如果说IP地址原创 2021-12-29 19:55:55 · 504 阅读 · 0 评论 -
HashSet集合保证元素唯一性的源码原理分析
HashSet集合它所存储的元素是不可重复的,并且元素都是无序的(即存取顺序不一致)。HashSet 是根据对象的哈希值来确定元素在集合中的存储位置,因此具有良好的存取和查找性能。保证元素唯一性的方式依赖于: hashCode() 与 equals ()方法。方法说明add((Object obj)向Set集合中添加元素,添加成功返回true,否则返回falseremove(Object obj)删除Set集合中的元素,删除成功返回true,否则返回false。c原创 2021-10-16 20:44:42 · 337 阅读 · 0 评论 -
map的两种遍历方式、hashMap的底层原理
Map储存键值对,保证键值的唯一性是通过HashMap中hash表map集合常用方法获取方法通过KeySet方法,获取Map集合中所有的键的集合通过values方法,获取Map集合中所有的值的集合Map第一种遍历方法通过KeySet()方法获取所有键的集合遍历键的集合,获取所有的键,使用增强for循环实现根据键去找值,通过get(Object key)方法实现Map第二种遍历方法通过entrySet()方法获取所有键值对的集合遍历键的集合,获取所有的键值对,使用增强fo原创 2021-10-16 20:41:18 · 594 阅读 · 1 评论 -
ArrayList集合和LinkedList集合底层原理
List集合List集合概述:有序集合(也称为序列),用户可以精确控制列表中每个元素的插入位置。用户可以通过整数索引访问元素,并搜索列表中的元素与Set集合不同,列表通常允许重复的元素List集合特点有序:存储和取出的元素顺序致可重复:存储的元素可以重复List集合特有的方法ArrayList的底层源码ArrayList :底层数据结构是数组,查询快,增删慢添加数据/自动扩容原理List<String> list = new ArrayList<>原创 2021-10-16 20:01:51 · 341 阅读 · 0 评论 -
下面这条语句一共创建了多少个对象:String s=“a“+“b“+“c“+“d“;
产生了一个对象,即"abcd"String s = "a" + "b" + "c" + "d";System.out.println(s == "abcd"); // true s被优化为”abcd”原创 2021-10-08 10:49:11 · 601 阅读 · 0 评论 -
String和StringBuffer、StringBuilde的区别
String和StringBuffer的区别这两个类都实现了CharSequence接口。类型不同,因为不是一个类,也没有继承关系,做参数时不能共用String对象是不可变对象,不能修改值。而StringBuffer是可变对象,能修改值。拼接字符串时,String会产生新对象,而StringBuffer只是增加新字符,不产生新对象,因此效率高。String覆盖了equals方法和hashCode方法,而StringBuffer没有覆盖equals方法和hashCode方法,所以,将StringB原创 2021-10-08 10:45:28 · 430 阅读 · 0 评论 -
抽象类与接口的区别
使用abstract修饰符的class为抽象类,abstract类不能创建的实例对象。接口(interface)是一种特殊的类,使用interface关键字进行修饰。下面比较一下两者的语法区别:抽象类可以有构造方法,接口中不能有构造方法;抽象类中可以有普通成员属性,接口中没有普通成员属性;抽象类中可以包含非抽象的普通方法,接口中的所有方法必须都是抽象的,不能有非抽象的普通方法;抽象类中的抽象方法的访问类型可以是public,protected和默认类型,但接口中的抽象方法只能是p原创 2021-10-08 10:39:31 · 94 阅读 · 0 评论 -
==与equals字符串比较区别
==号的作用比较基本数据类型:比较的是具体的值比较引用数据类型:比较的是对象地址值equals方法的作用默认地址比较如果没有覆盖重写equals方法,那么Object类中默认进行 == 运算符的对象地址比较,只要不是同一个对象,结果必然为false。对象内容比较如果希望进行对象的内容比较,即所有或指定的部分成员变量相同就判定两个对象相同,则可以覆盖重写equals方法。使用==是运算符,可以两侧都为nullequals左侧的引用指向的对象不能空,不然有NullPoin原创 2021-10-08 10:20:41 · 150 阅读 · 0 评论 -
如何将double或float类型的数字转换为int类型的数字,并选择所需要保留的小数点个数
double/float转换为int类型1.强制类型转换package Test;/** * @author Marston * @date 2021/9/28 */public class test1 { public static void main(String[] args) { double dou = 18.165985; float flo = 18.1612f; //将double/float转换为int —使用类型转换原创 2021-09-28 20:48:46 · 980 阅读 · 0 评论 -
Java基本数据类型
Java的数据类型分为两大类:基本数据类型:包括 整数 、 浮点数 、 字符 、 布尔 。引用数据类型:包括 类 、 数组 、 接口 。关键字数据类型取值范围内存占用默认值其他byte字节-128~1271个字节08位,byte 类型用在大型数组中节约空间,主要代替整数,因为 byte 变量占用的空间只有 int 类型的四分之一;short短整型-32768~327672个字节016位, Short 数据类型也可以像 byte 那样节省空间。一原创 2021-09-28 20:13:49 · 94 阅读 · 0 评论 -
实现Map集合的排序
项目卡的地方,解决该sql背景介绍:1.dao查询数据库中某个表里面的数据,通过count函数查找拥有符合要求的fid,通过JDBCUtil的工具类,执行语句,获取count的数目,获取方法如下2.想要通过上面获取的总评论数,对list表进行排序,我就使用了Map集合,键储存Food类,值储存评论总数3.对Map集合进行排序public int countRemark(int fid) { String sql = "select count(*) from remark where fi原创 2021-09-12 17:26:30 · 270 阅读 · 0 评论 -
Java基础(17)----- 平时查缺补漏所补充的内容
权限修饰符publicprotecteddefault(空的)private同一类中√√√√同一包中(子类与无关类)√√√不同包的子类√√不同包中的无关类√public具有最大权限。private则是最小权限。编写代码时,如果没有特殊的考虑,建议这样使用权限: 成员变量使用 private ,隐藏细节。 构造方法使用 public ,方便创建对象。 成员方法使用 public ,方便调用方法。 小贴士:不加权限修饰原创 2021-08-24 16:11:40 · 143 阅读 · 0 评论 -
Java基础(14)---- 线程同步
线程同步卖票需求,实现三个窗口卖票,直到票卖完为止,线程类public class SellTicket implements Runnable{ private int tickets = 20; @Override public void run() { while(true){ if(tickets > 0){ System.out.println(Thread.currentThread().getName()+"正在出售第"+tickets+"张票");原创 2021-08-24 13:40:00 · 149 阅读 · 0 评论 -
Java基础(13)---- 线程
线程进程和线程进程:是正在运行的程序是系统进行资源分配和调用的独立单位每一个进程都有它自己的内存空间和系统资源线程:是进程中的单个顺序控制流,是一条执行路径单线程:一个进程如果只有一条执行路径,则称为单线程程序多线程:一个进程如果有多条执行路径,则称为多线程程序一个程序运行后至少有一个进程,一个进程中可以包含多个线程生命周期线程一共有五种状态,线程在各种状态之间转换。可以使用yield使线程进行,实现运行—>就绪这个功能实现多线程继承thread类方法原创 2021-08-24 10:43:12 · 104 阅读 · 0 评论 -
Java基础(12)----IO之字节流和字符流
IO概述与分类IO流介绍IO:输入/输出(Input/Output)流:是一种抽象概念,是对数据传输的总称。也就是说数据在设备间的传输称为流,流的本质是数据传输IO流就是用来处理设备间数据传输问题的。常见的应用:文件复制;文件上传;文件下载IO流的分类按照数据的流向输入流:读数据输出流:写数据按照数据类型来分字节流字节输入流字节输出流字符流字符输入流字符输出流按照角色分类:按照流是否直接与特定的地方(如磁盘、内存、设备等)相连原创 2021-08-21 14:22:48 · 201 阅读 · 0 评论 -
Java基础(11)-----File
File类File类介绍它是文件和目录路径名的抽象表示文件和目录是可以通过File封装成对象的对于File而言,其封装的并不是一个真正存在的文件,仅仅是一个路径名而已。它可以是存在的,也可以是不存在的。将来是要通过具体的操作把这个路径的内容转换为具体存在的构造方法方法名说明File(String pathname)通过将给定的路径名字符串转换为抽象路径名来创建新的 File实例File(String parent, String child)从父路原创 2021-08-20 14:30:40 · 149 阅读 · 0 评论