Java学习笔记
文章平均质量分 58
兴涛
春风化雨,森林拔地而起!
展开
-
动态代理及实现
1、InvocationHandler接口。原创 2022-08-14 20:38:29 · 421 阅读 · 1 评论 -
Java中键盘输入常用操作
1、next()与nextLine()(1) next():一定要读取到有效字符后才可以结束输入;对输入有效字之前遇到的空格,next()方法会自动将其去掉;只有输入有效字符后才能将其后面输入的空格作为分隔符或结束符。当有效字符出现后,后面的再输入空格,那么空格后的元素就不再输出;next()不能得到带有空格的字符串;(2) nextLine():以Enter为结束符,可以返回输入回车之前的所有字符;可以获得空格;next()会丢掉空格,nextLine()不会丢掉空格。2、把键原创 2022-04-21 19:22:17 · 4776 阅读 · 0 评论 -
Java中自定义比较器
Java中自定义比较器1、数组比较器2、集合比较器3、自定义类比较器今天写算法题的时候需要用到数组排序,而且是自定义的,这块知识欠缺,就进行了相应的资料查询。以我自己的理解,Java中自定义比较器有三种1、数组比较器数组比较器用到了Arrays的工具类,此类中提供了许多静态方法,其中sort是默认升序,并且我查看了sort的源代码,使用的是快速排序:快速排序相信大家都不陌生,这里不再多说了。刚才说到sort默认是升序,如果我们想要降序呢?Arrays提供了自定义实现排序,就是自己重新实现C原创 2022-04-01 11:04:19 · 4286 阅读 · 0 评论 -
IDEA中部署web项目并启动
1、首先在右上角打开Edit Configurations2、新建一个Tomcat Server3、Name框需要自己重命名,一般和自己的项目名称相同,(取决于你自己,你能知道是哪个就ok)。下面的URL是自动生成的路径4、进入到Deployment中5、添加项目的exploded6、添加完成后,点击apply就可以顺利启动了拓展:1、war模式和war exploded模式的区别war模式:将WEB工程以包的形式上传到服务器 ;war exploded模式:将WEB工原创 2022-03-23 12:56:38 · 6973 阅读 · 0 评论 -
Mybatis中sql语句的#号和$号的区别
1、#{变量名}#{变量名}可以进行预编译、类型匹配等操作,#{变量名}会转化为jdbc的类型。select * from tableName where id = #{id}假设id的值为12,其中如果数据库字段id为字符型,那么#{id}表示的是‘12’;如果是整型,则id的值为12;并且Mybatis会将上面SQL语句转化为jdbc的 select * from tableName where id =?,把?参数值设置为id的值。这种方式使得sql语句是经过预编译的,它是把#{}中间的转载 2022-03-20 10:56:54 · 1282 阅读 · 0 评论 -
Spring中的@Transactional详解
1、原理事务的概念想必大家都很清楚,其ACID特性在开发过程中占有重要的地位。同时在并发过程中会出现一些一致性问题,为了解决一致性问题,也出现了四种隔离级别,这里就不再详述了,感兴趣的可以去查一下。下面我们讨论一下Spring中的事务。Spring中的事务有两种:编程式事务声明式事务通常情况下我们使用声明式事务,它是基于SpringAOP实现的。基于AOP实现的事务极大得帮助了我们的开发效率,其本质是对方法进行前后拦截,在目标方法前加入一个事务,在目标完成后再加入一个事务进行提交或者回滚,这种原创 2022-03-18 09:45:07 · 1111 阅读 · 0 评论 -
详解java重定向和转发的区别
重定向和转发有一个重要的不同:当使用转发时,JSP容器将使用一个内部的方法来调用目标页面,新的页面继续处理同一个请求,而浏览器将不会知道这个过程。 与之相反,重定向方式的含义是第一个页面通知浏览器发送一个新的页面请求。因为,当你使用重定向时,浏览器中所显示的URL会变成新页面的URL, 而当使用转发时,该URL会保持不变。重定向的速度比转发慢,因为浏览器还得发出一个新的请求。同时,由于重定向方式产生了一个新的请求,所以经过一次重定向后,request内的对象将无法使用。怎么选择是重定向还是转发呢?通常情况转载 2022-03-02 10:08:05 · 2707 阅读 · 0 评论 -
request.getSession()方法
文章转载:https://www.cnblogs.com/xiaoqiqistudy/p/11195652.html1、request.getSession()可以帮你得到HttpSession类型的对象,通常称之为session对象,session对象的作用域为一次会话,通常浏览器不关闭,保存的值就不会消失,当然也会出现session超时。服务器里面可以设置session的超时时间,web.xml中有一个session time out的地方,tomcat默认为30分钟。2、session.setA转载 2022-03-02 09:34:25 · 13254 阅读 · 0 评论 -
Java SpringMVC三层架构及执行流程
一、SpringMVC三层架构Java SpringMVC的工程结构一般来说分为三层,自下而上是Modle层(模型,数据访问层)、Cotroller层(控制,逻辑控制层)、View层(视图,页面显示层),其中Modle层分为两层:dao层、service层,MVC架构分层的主要作用是解耦。采用分层架构的好处,普遍接受的是系统分层有利于系统的维护,系统的扩展。就是增强系统的可维护性和可扩展性。对于Spring这样的框架,(View\Web)表示层调用控制层(Controller),控制层调用业务层(Ser原创 2022-02-26 11:47:08 · 2578 阅读 · 0 评论 -
系统中的DTO与MO
1、概述在一个Web服务的实现中,我们常常需要访问数据库,并将从数据库中所取得的数据显示在用户页面中。这样做的一个问题是:用于在用户页面上展示的数据和从数据库中取得的数据常常具有较大区别。在这种情况下,我们常常需要向服务端发送多个请求才能将用于在页面中展示的数据凑齐。一个解决该问题的方法就是根据不同需求使用不同的数据表现形式。在一个服务实现中较为常见的数据表现形式有MO(Model Object,在有些上下文中也被称为VO,Value Object)和DTO(Data Transfer Object)。转载 2022-02-19 21:18:23 · 625 阅读 · 0 评论 -
PriorityQueue优先队列源码分析
一、构造PriorityQueue实例 在实际介绍PriorityQueue原理之前,再次啰嗦PriorityQueue的内部结构。PriorityQueue中的元素在逻辑上构成了一棵完全二叉树,但是在实际存储时转换为了数组保存在内存中,而我们的PriorityQueue继承了接口Queue,表名这是一个队列,只是它不像普通队列(例如:LinkedList)在遍历输出的时候简单的按顺序从头到尾输出,PriorityQueue总是先输出根节点的值,然后调整树使之继续成为一棵完全二叉树 样每次输出的根节点总是转载 2022-02-11 19:19:39 · 244 阅读 · 0 评论 -
Queue和Deque的区别
QUEUE与DEQUE的区别一、概述1、PriorityQueue2、LinkedList和ArrayDeque3、小结一、概述从上图看出,Queue以及Deque都是继承于Collection,Deque是Queue的子接口。下面来看一下官方文档的解释。A linear collection that supports element insertion and removal at both ends. The name deque is short for "double ended que转载 2022-02-08 22:02:44 · 1830 阅读 · 0 评论 -
JAVA中String的两种拼接方式及其存储方式
Java中的String是一种字符串类,其具有许多方法,这里我们讨论一下字符串的拼接和它的存储方法。第一种拼接方式就是s3的方式,两个字符串相连接,拼接完后的字符串是存放到方法区的常量池中,常量池的一个特性就是不会存储相同的字符串;第二种拼接方式是s4的方式,此时拼接完是在堆中形成对象并对其进行存储;这两种方式我们在使用的时候需要注意其对内存的影响;参考资料:尚硅谷java课程...原创 2022-02-05 12:13:42 · 1157 阅读 · 4 评论 -
JAVA集合容器的线程安全性及其特性
JAVA集合容器的线程安全性一、Java中的集合容器二、容器的线程安全性一、Java中的集合容器Java中有单例集合和双例集合,如下:单例集合:List接口、Set接口,继承自Collection接口。双例集合:Map接口二、容器的线程安全性常用集合安全性特点ArrayList线程不安全底层数组实现,查询效率高,增删效率低手机$12导管$1...原创 2022-02-03 10:44:07 · 1111 阅读 · 0 评论 -
哈希表(散列函数)的构造方法和哈希冲突
哈希表(散列表)的构造方法和哈希冲突一、散列函数的构造方法1、直接定址法2、数字分析法3、平方取中法4、折叠法5、除留余数法6、随机数法二、解决哈希冲突的方法1、开放定址法2、再散列函数法3、链地址法4、公共溢出区法一、散列函数的构造方法1、直接定址法取关键字的某个线性函数的值作为地址:F(key) = A * key + B (A、B为常数) 比如我要存储某个社区年龄0-20岁的人,那么我们可以直接使用年龄的数值作为地址:F(key) = key (A=1、B=0) 采用这种原创 2022-01-16 13:38:15 · 428 阅读 · 0 评论 -
Java面向对象内存分析
Java面向对象内存分析一、Java类二、内存分析一、Java类类是面向对象编程中最基本的单位。Java中的类包含三个内容,分别是:属性属性又叫成员变量。属性用于定义类或类对象的数据(静态特征)。范围为整个类体。方法方法用于定义类或类对象的行为特征(执行动作)(动态)。方法类似于面向过程中的函数,面向过程中的函数是最基本的单位;而在面向对象中,最基本单位是类,方法从属于类和对象。构造方法构造方法分为无参构造方法;有参构造方法。构造方法要与类名保持一致。如果不设置原创 2021-05-28 16:51:58 · 1850 阅读 · 40 评论 -
Java中构造代码块和静态代码块
介绍构造代码块和静态代码块的格式和特性。末尾给出了一个静态代码块在数据库连接池应用的简单介绍。原创 2021-12-04 21:19:54 · 1709 阅读 · 0 评论 -
Java基础深化和提高代码
截至今日,Java SE已学完,学习过程中的代码内容:提取码:zrgk.原创 2021-08-30 17:09:55 · 106 阅读 · 0 评论 -
Java中线程状态
谨以此图回忆复习图书参考:实战Java程序设计 北京尚学堂科技有限公司 编著原创 2021-08-21 12:16:16 · 80 阅读 · 0 评论 -
JAVA构造器及对象创建的过程
今天学妹问我Java对象到底是怎么创建的?那我必须要从底层给学妹讲清楚呀!一、 构造器JAVA中构造器也称为构造方法,它用于对象的初始化。构造器分为:无参构造器有参构造器构造器的一些特点:无参构造器只能有一个,有参构造器可以根据需求设置多个(构造器的重载)。当你没有指定构造器时,则编译器会自动定义一个无参构造器。Java通过new关键字来调用构造器。构造器有返回值,但是在构造器中不能使用return关键字来指定返回值。构造器的方法名必须和类名一致二、 对象创建过程Java原创 2021-08-18 10:55:35 · 2034 阅读 · 0 评论 -
JAVA中IO体系结构
JAVA中IO体系结构JAVA中流概念的分类:1、按流的方向分类输入流:InputStream、Reader输出流:OutputStream、Writer输入输出流是按程序来看的,外部读入到程序就是输入,从程序中输出到程序外部,则为输出。其中,比如程序A和程序B,从程序A中输出到B,则相对于程序A来说是输出。2、按处理的数据单元分类字节流: 以Stream结尾的;InputStream、OutputStream、FileInputStream字符流: 以Reader/Writer结尾原创 2021-07-15 16:07:19 · 93 阅读 · 0 评论 -
JAVA-jdk8的API文件下载
API下载地址: https://www.oracle.com/java/technologies/javase-jdk8-doc-downloads.html.进入后下载zip文件下载成功后解压下载文件,然后打开docs,api目录下的index.html文件即可注:推荐使用英文文档原创 2021-07-07 19:21:07 · 6616 阅读 · 1 评论 -
JAVA中泛型定义标记
参考:尚学堂JAVA课程原创 2021-07-06 11:46:22 · 106 阅读 · 0 评论 -
JAVA中容器--Interface Collection单例集合容器之List容器和Set容器
Collection接口一、容器介绍二、List接口一、容器介绍容器是JAVA中非常重要的一项内容。所谓容器,就是容纳和管理数据,就像我们日常生活中的柜子、碗、水杯等。数组就属于容器的一种。JAVA中的容器分为单例集合和双例集合。单例集合是Collection接口,它的子接口是List接口和Set接口(JAVA中类只能单继承,接口可以多继承)。单例集合顾名思义就是数据是一个一个得存取和读出。List接口类似于数学中的有序序列概念,Set接口类似于数学中集合的概念。双例集合是Map接口,双例集合是原创 2021-07-06 11:42:01 · 278 阅读 · 0 评论