Java知识碎片
本专栏主要是关于java学习中遇到的一些知识点,BUG等碎片知识
DKPT
I CAN DO IT.
展开
-
JSONP跨域解决方案有哪些局限性
3、无法获取HTTP状态码和头部信息:使用JSONP发送的请求,浏览器无法像正常的XMLHttpRequest请求那样获取HTTP状态码和头部信息。4、无法处理复杂的错误处理:JSONP没有提供像XMLHttpRequest那样的错误处理机制。标签的src属性只能发送GET请求,不能发送POST或其他类型的HTTP请求。6、对老式浏览器的依赖:虽然JSONP可以在大多数现代浏览器中工作,但它依赖于浏览器对。在一些老式或特定的浏览器中,JSONP可能无法正常工作。标签来发送请求的,而。原创 2024-06-05 09:02:44 · 219 阅读 · 0 评论 -
Java如何分块读取大文件
在例子中,创建了一个1MB大小的缓冲区,并使用BufferedInputStream的read(byte[] b)方法将文件内容读入缓冲区。read()方法返回读取的字节数(如果达到文件末尾,则返回-1)。请注意,直接将byte[]转换为String(如示例中的注释所示)可能不是处理二进制文件的好方法,因为它假设文件内容使用平台的默认字符集编码。此外,try-with-resources语句用于自动关闭输入流,这是一种很好的做法,可以确保即使发生异常,流也会被正确关闭。原创 2024-05-29 07:21:58 · 597 阅读 · 0 评论 -
如何优化大文件读取时的性能
1、如果你的应用是多线程的,并且文件可以被独立地划分为多个部分,那么可以使用多个线程或进程同时读取和处理文件的不同部分。1、不要一次性将整个文件加载到内存中,而是将其分割成多个较小的块(例如,每块1MB或更大),然后逐块读取和处理。1、使用性能监视工具(如JProfiler、VisualVM等)来监视你的应用的性能,并找出可能的瓶颈。2、确保你的系统有足够的RAM和适当的磁盘I/O带宽来支持大文件的读取。1、根据你的应用的需求,调整JVM的堆大小和其他相关参数。2、确保JVM有足够的内存来处理大文件。原创 2024-05-29 07:21:25 · 447 阅读 · 0 评论 -
Java如何读取指定地址的tif格式图片转为base64编码
在这种情况下,可能需要分块读取文件,并逐块进行Base64编码。确保Java版本至少是8,因为java.util.Base64类是在Java 8中引入的。2、使用java.util.Base64类(在Java 8及以上版本中可用)将读取的字节转换为Base64编码的字符串。1、使用java.nio.file包中的Files类或java.io包中的FileInputStream来读取文件。如果处理的是非常大的文件,可能需要使用更复杂的逻辑来读取文件,以避免一次性加载整个文件到内存中。原创 2024-05-28 10:04:48 · 1019 阅读 · 0 评论 -
Java如何将tif格式图片转为jpg格式图片
在Java中,将TIFF(.tif)格式的图片转换为JPEG(.jpg)格式的图片,通常需要使用图像处理库,如Apache Commons Imaging(之前称为Sanselan)或Java Advanced Imaging (JAI)。但是,由于Apache Commons Imaging更常用且维护得更好,我将使用它作为示例。1、确保将Apache Commons Imaging添加到项目的依赖中。原创 2024-05-28 10:04:25 · 558 阅读 · 0 评论 -
Java代码实现给定的出生日期字符串,按北京时间的时区,判断是否未成年的工具方法
Java代码实现给定的出生日期字符串,按北京时间的时区,判断是否未成年的工具方法原创 2024-05-01 08:08:53 · 108 阅读 · 0 评论 -
UML类图说明与介绍
一、UML类图图示样例二、图示样例详解1、矩形框矩形框代表一个类(Class)。(1) 第一层:类的名称,若是抽象类则用斜体表示。(2) 第二层:类的特性,一般是字段、属性等。(3) 第三层:类的操作,一般是方法或者行为。注意:1)“+”表示public权限,表明对所有类都是可见的。2)“-”表示private权限,表明仅对该类自己是可见的。3)“#”表示protect权限,表明对该类的子孙是可见的。4)“~”表示package权限,表明仅对同一包声明的其他类是可见的。2、接口图原创 2021-02-27 21:14:15 · 1915 阅读 · 0 评论 -
NoSQL中最火爆的四种数据库比较与选择
一、四种NoSQL数据库的支持与性能分析二、四种NoSQL数据库的使用场景与选择(1)如果业务对数据的读写要求极高,数据规模不大,也不需要长期存储,那么可以选择redis数据库。(2)如果业务的数据规模较大,对数据的读性能要求很高,数据表的结构需要经常变,有时还需要做一些聚合查询,可以选择MongoDB数据库。(3)如果业务需要构造一个搜索引擎或者是数据可视化平台,并且数据有一定的分析价值可以使用ElasticSearch实现。(4)如果业务需要存储海量数据,未来数据规模增长非常快,那么可以选择原创 2021-02-26 17:27:32 · 1651 阅读 · 0 评论 -
java开发常用端口号与服务
原创 2020-12-06 19:10:46 · 1726 阅读 · 0 评论 -
synchronize锁知识点
synchronize(偏向锁)markword 记录线程ID;(自旋锁)线程争用升级到自旋锁;(重量级锁)10次自旋后升级为重量级锁;执行时间短(加锁代码),线程数量少,使用自旋锁。执行时间长,线程数量多。使用系统锁重量级锁。synchronize(object)加锁时object不使用string常量,integer,Long....原创 2020-08-20 16:43:00 · 268 阅读 · 0 评论 -
@EnableAutoConfiguration 注解如何实现自动配置?
(1)Spring Boot 通过 @EnableAutoConfiguration 注解开启自动配置。(2)加载 spring.factories 中注册的AutoConfiguration 类。(3)查找到一个AutoConfiguration 类满足其注解 @Conditional 指定的生效条件(Starters 提供的依赖、配置或 Spring 容器中是否存在某个 Bean 等)。(4)如果查找到对应的AutoConfiguration 类就实例化该 AutoConfiguration 类中原创 2020-08-04 09:52:41 · 446 阅读 · 0 评论 -
类加载器简介,类加载器有哪几种?
实现通过类的权限定名获取该类的二进制字节流的代码块叫做类加载器。主要有一下四种类加载器:(1)启动类加载器(Bootstrap ClassLoader)用来加载java核心类库,无法被java程序直接引用。(2)扩展类加载器(extensions class loader):它用来加载Java的扩展库。Java虚拟机的实现会提供一个扩展库目录。该类加载器在此目录里面查找并加载 Java类。(3)系统类加载器(system class loader)也叫应用类加载器:它根据Java应用的类路径(CL原创 2020-07-25 15:30:41 · 3646 阅读 · 0 评论 -
java中abstract关键字的使用介绍
1.abstract:抽象的。2.abstract可以用来修饰的结构,类、方法。3.abstract修饰类,抽象类。(1)此类不能实例化。(2)抽象类中一定有构造器,便于子类实例化时调用(涉及,子类对象实例化的全过程)。(3)开发中,都会提供抽象类的子类,让子类对象实例化,完成相关的操作。4.abstract修饰方法:抽象方法(1)抽象方法只有方法的声明,没有方法体(2)包含抽象方法的类,一定是一个抽象类。反之,抽象类中可以没有抽象方法的。(3)若子类重写了父类中的所有的抽象方法后,此子类原创 2020-06-10 21:09:37 · 1995 阅读 · 0 评论 -
java中接口的使用介绍
1.接口使用interface定义。2.Java中,接口和类是并列的两个结构。3.如何定义接口,定义接口中的成员。3.1 JDK7及以前,只能定义全局常量和抽象方法。(1)全局常量:public static final的,书写时,可以省略不写。(2)抽象方法:public abstract的。3.2 JDK8,除了定义全局常量和抽象方法之外,还可以定义静态方法、默认方法。4.接口中不能定义构造器,接口不可以实例化。5,Java开发中,接口是通过被类实现(implements)的方式来使用。原创 2020-06-10 21:07:59 · 175 阅读 · 0 评论 -
类的内部成员-----内部类
1.Java中允许将一个类A声明在另一个类B中,则类A就是内部类,类B称为外部类2.内部类的分类成员内部类(协态、非协态)Vs局部内部类(方法内、代码块内、构造器内)3,成员内部类:(1)作为外部类的成员:1)调用外部类的结构。2)可以被static修饰。3)可以被4种不同的仅限修饰。(2)作为一个类:1)类内可以定义属性、方法、构造路等。2)可以被final修饰,表示此类不能被继承。当不使用final时,此类可以被继承。3)可以被abstract修饰。...原创 2020-06-10 21:05:54 · 214 阅读 · 0 评论 -
如何判断属性和方法是否使用static关键字?
1、关于属性(1)属性是可以被多个对象所共享的,不会随着对象的不同而不同的。(2)类中的常量也常常声明为static。2、关于方法(1)操作静态属性的方法,通常设置为static的。(2)工具类中的方法,习惯上声明为static的。比如:Math、Arrays、Collections。...原创 2020-06-10 21:03:38 · 467 阅读 · 0 评论 -
Final知识点总结
**1.final:最终的,final可以用来修饰的结构,类、方法、交量。2.final用来修饰一个类:此类不能被其他类所继承比如。String类、System类、StringBuffer类。3.final用来修饰方法:来明此方法不可以被重写,Object类中getClass();4.final用来修饰变量,此时的“变量”就称为是一个常量。1)final修饰属性,可以考虑赋值的位置有,显式初始化、代码块中初始化、构造器中初始化。**...原创 2020-06-06 19:20:57 · 208 阅读 · 0 评论 -
代码块知识点总结
1.代码块的作用:用来初始化类、对象。2.代码块如果有修饰的话,只能使用static。3.分类,静态代码块 vs 非静态代码块。4.静态代码块内部可以有输出语句。随着类的加载而执行,而且只执行一次。作用:初始化类的信息。如果一个类中定义了多个静态代码块,则按用声明的先后顺序执行。静态代码块的执行要优先于非静态代码块的执行。静态代码块内只能调用静态的属性、静态的方法,不能调用非静态的结构。5,非静态代码块1)内部可以有输出语句。2)随着对象的创建而执行。3)每创建一个对象,就执行一次原创 2020-06-06 19:16:33 · 302 阅读 · 0 评论 -
‘==’运算符和equals方法的区别
1.‘==’既可以比较基本类型也可以比较引用类型。对于基本类型就是比较值,对于引用类型就是比较内存地址。2.equals的话,它是属于java.lang.Object类里面的方法,如果该方法没有被照写过默认也是==。3.具体要看自定义类里有没有重写Object的equals方法来判断。4.通常情况下,重写equals方法,会比较类中的相应属性是否都相等。...原创 2020-06-05 20:52:12 · 122 阅读 · 0 评论 -
‘==’与equals的使用
一 、‘==’运算符的使用1.可以使用在基本数据类型变量和引用教据类型变量中。2.如果比较的是本数据类型变量:比较两个变量保存的数据是否相等。(不一定类型要相同)。3.如果比较的是引用数据类型度量,比较两个对象的地址值是否相同,即两个引用是否指向同一个对象实体。二 、equals()方法的使用1.equals()是一个方法,而非运算符。2.只能适用千引用数据类型。3.Object类中equals()的定义。public boolean equals(Object obj){ retu原创 2020-06-05 20:47:31 · 192 阅读 · 0 评论 -
重写equals()方法的原则
对称性:如果x.equals(y)返回是“true”,那么y.equals(x)也应该返回是“true”。自反性:x.equals(x)必须返回是“true”。传递性:如果x.equalsly)返回是“true”,而且y.equals(z)返回是“true”,那么z.equals(x)也应该返回是“true”。一致性:如果x.equals(y)返回是“true”,只要x和y内容一直不变,不管重复x.equals(y)多少次,返回结果都是“true”。其他:任何情况下,x.equals(n原创 2020-06-05 20:37:46 · 207 阅读 · 0 评论 -
三目运算符---自动转换数据类型
public void test(){ Object a1= true? new Integer (1) : new Double (2.0); System.out.println(a1); //结果是1.0 //因为三目运算时会将数据类型自动转换为范围大的统一运算。}原创 2020-06-05 20:14:01 · 462 阅读 · 0 评论 -
Spring安全框架——细粒度权限控制实现步骤
第一步:开启系统全局的细粒度方法级别权限控制功能。第二步:将手动授权的方式取消或注释掉。第三步:给需要添加权限控制的方法添加注解,进行访问授权。第四步:从数据库读取用户的权限和角色。第五步:准备数据。...原创 2020-05-22 20:23:44 · 264 阅读 · 0 评论 -
function和window onload = function的区别?
$( function(){} );和window.onload = function(){}的区别?1、分别是在什么时候触发?1、jQuery的页面加载完成之后是浏览器的内核解析完页面的标签创建好DOM对象之后就会马上执行2、原生js的页面加载完成之后,除了要等浏览器内核解析完标签创建好DOM对象,还要等标签显示时需要的内容加载完成2、触发的顺序?1、jQuery页面加载完成之后先执行...原创 2020-04-24 20:22:35 · 275 阅读 · 0 评论 -
java测试类向数据库插入数据,程序没有错误运行也正常,但是查看数据库时发现数据库未插入数据是怎么办?
问题:java测试类向订单表插入数据,程序没有错误运行也正常,但是查看数据库时发现数据库未插入数据是怎么办?第一步,先检查确认代码无错误:public class OrderDaoTest { private OrderDao orderDao = new OrderDaoImpl(); // 保存订单 @Test public void saveOrder...原创 2020-04-22 21:01:18 · 3111 阅读 · 0 评论 -
${param.pageNo}是什么意思?
1、${param.id};与request.getParameter(“id”);功能相同 2、${param.id};获取输入的参数id,也可理解为的是form或者div表单里的ID。request.getParameter("id");是获取数据库中对应的编号ID。3、${param.id}与${ requestScope.book.id }两者的区别:(1)requestScope是...原创 2020-04-18 15:34:09 · 1151 阅读 · 0 评论