java
qq_30499345
这个作者很懒,什么都没留下…
展开
-
spring mvc 上传要配置MultipartResolver的原因
上传的时候我们要先配 <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> <property name="defaultEncoding" value="utf-8"/> <property name="maxUploadSize" value="50000000"/>.原创 2022-02-12 21:45:50 · 774 阅读 · 0 评论 -
ClassNotFoundException: com.fasterxml.jackson.core.util.DefaultPrettyPrinter$Indenter 解决方法
1.是有没有在POM中设置好jackson的坐标<dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-core</artifactId> <version>${jackson.version}</version> </dep原创 2022-02-11 22:38:19 · 720 阅读 · 0 评论 -
IDEA Spring facet的意思
首先,facet不是一个javaee的术语,而是idea的一个术语,官方文档的说法是:A facet is part of the UI that lets you specify framework-specific settings for a module——IntelliJ IDEA 2016.2 Help :: Adding support for frameworks and technologies (jetbrains.com),直接翻译过来就是facet就是IDEA的UI中让你详细原创 2022-02-09 15:24:25 · 2593 阅读 · 0 评论 -
从动态代理到CGLIB的学习记录
之前看jvm的时候看到CGLIB这个库,就想看看究竟是个什么玩意,结果一研究就是好几天,看的头大,记录一下学习路线,以后忘了好复习。 个人的理解,动态代理相比于静态代理(资料很多这里就不赘述了),优势在于动态代理不需要重新实现接口的所有函数,代码更为简练,以下是一个例子(主要 参考了文章:Java 动态代理作用是什么? - bravo1988的回答 - 知乎),注释里面有注意的点:public interface Calculator { public Integ...原创 2022-02-06 00:09:24 · 77 阅读 · 0 评论 -
JDBC加载原理
大学的时候就学过了JDBC,当时一知半解,现在来搞懂以下详细的注册的原理。JavaWeb的老师教了以下这句代码,说是注册驱动,但是原理是什么是没有细说的。Class.forName("com.mysql.jdbc.Driver");查看jdbc jar包的代码,如下public class Driver extends com.mysql.cj.jdbc.Driver { public Driver() throws SQLException { } stati原创 2022-01-29 23:40:38 · 1072 阅读 · 0 评论 -
非删除头部尾部的情况下,LinkedList和ArrayList性能对比
学过数据结构的都知道,理论上,链表相比数组在删除方面更加有优势,原因在于数组在删除后,需要将删除位置后面的元素都向前移动一位。但是如果是指定删除第几个元素(如删除位置处于整个数组的中间)的情况下就不一样了。测试代码如下public class test { public static void main(String[] args) { ArrayList list = new ArrayList(); for(int i = 0 ; i < 100000原创 2022-01-28 16:44:36 · 974 阅读 · 0 评论 -
IDEA部署Servlet的原理分析
一直很疑惑IDEA是怎么把servlet部署到起来的,就花了点时间看了下。首先,在IDEA部署servlet时可以看到以下输出D:\xxxxxx\tomcat9\9.0.58\bin\catalina.bat run[2022-01-26 10:49:03,402] Artifact servlet:war exploded: Waiting for server connection to start artifact deployment…Using CATALINA_BASE: "C原创 2022-01-26 15:24:41 · 531 阅读 · 0 评论 -
反射实例:简单的注解扫描,调用执行
//注解接口package com.ift;import java.lang.annotation.Retention;import java.lang.annotation.RetentionPolicy;@Retention(RetentionPolicy.RUNTIME)public @interface DemoRunAble {}package com.reflect;//反射主体import com.ift.DemoRunAble;import java..原创 2022-01-19 00:16:56 · 449 阅读 · 0 评论 -
使用try获取标准输入流报错StreamClosed坑
void standardInputStream(){ int by; while(true){ try ( BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); ) { String tmp; while ((tmp = in.readLine()) != null) break; .原创 2022-01-17 20:14:41 · 423 阅读 · 0 评论 -
标准打印流PrintStream和PrintWriter区别
最突出的PrintWriter初始化时可使用OutputStreamWriter进行初始化,意味着可以指定编码。而PrintStream使用的是默认编码。此外PrintWriter可以设置autoflush,使用println时,会自动flush。原创 2022-01-16 23:50:43 · 138 阅读 · 0 评论 -
FileIO相关类的关系
对于BufferReader和BufferWriter的copy的实践public void copy(String src , String target){ try(BufferedWriter writer = new BufferedWriter(new FileWriter(target)); BufferedReader reader = new BufferedReader(new FileReader(src));){ String li...原创 2022-01-16 22:20:14 · 84 阅读 · 0 评论 -
HashMap、HashSet源码笔记
1.HashMap每次扩容是通过左移动运算进行扩容,保证HashMap的size是2的整数次幂。int oldCap = (oldTab == null) ? 0 : oldTab.length;int oldThr = threshold;int newCap, newThr = 0;if (oldCap > 0) { if (oldCap >= MAXIMUM_CAPACITY) { threshold = Integer.MAX_VALUE;原创 2022-01-15 12:21:13 · 170 阅读 · 0 评论 -
AbstractList抽象类的设置
对于可能会被子类实现并被使用的方法,可以在抽象类中将其实现为直接抛出 未实现的Exception,相比使用抽象方法,不需要强迫子类实现抽象方法,同时抛出异常给用户必要的提醒。public void add(int index, E element) { throw new UnsupportedOperationException();}...原创 2022-01-15 00:16:39 · 95 阅读 · 0 评论 -
内部类访问外部类的成员方法
例:ArrayList中itr内部类访问父类public E next() { checkForComodification(); int i = cursor; if (i >= size) throw new NoSuchElementException(); Object[] elementData = ArrayList.this.elementData; if (i >= elementData.length)原创 2022-01-15 00:10:43 · 241 阅读 · 0 评论 -
java学习笔记(四):异常处理
异常处理声明异常public void function () throws BadException //声明函数会抛出的错{ if(abandonAllHope){ throw new BadException; //创建Exception对象并抛出 }}使用try…catch…finally…捕捉异常try{ object.function();}c...原创 2019-07-17 09:50:43 · 78 阅读 · 0 评论 -
java学习笔记(一)
java学习笔记(一)目前学到第五章,由于有c++的基础 一些和c++差不多的东西就不写了,只作重要的笔记。string转化为intInterger.parseInt("3")for 循环加强版for(<variable>:<array> )表示variable in array随机数Math.Random()返回一个位于0到1之间的随机数获取输入...原创 2019-07-12 00:17:14 · 69 阅读 · 0 评论 -
java学习笔记(三):构造器与垃圾收集器,静态
对象方法和堆栈的关系对象及permietive变量生存在堆中,方法调用和变量生存在堆中方法会被堆在一起,被调用的方法在栈顶构造函数public class className(){ public className(){...};//构造函数}和c++一样;抽象的类也一样有构造函数,会在子类调用时使用构造函数super()为调用父类构造函数,必须写在子类构造函数的第...原创 2019-07-14 18:28:27 · 71 阅读 · 0 评论 -
java学习笔记(二):api 继承 多态 接口
java学习笔记(二)1.ArrayList 库的操作创建ArrayList<type> ArrayName = new ArrayList<type>();加入元素type VariableName= new type();ArrayName.add(VaruableName);查询大小ArrayName.size()查询特定元素 返回bool...原创 2019-07-13 17:54:09 · 146 阅读 · 0 评论