Java
weiambt
研究生在读,专注于nlp、知识图谱、算法、云原生、前后端等领域,擅长Java,Python。记录学习历程,分享学习心得,欢迎大家交流讨论。
展开
-
【异常处理】Error:(1, 1) 错误: 需要class, interface或enum
Java项目报错Error:(1, 1) 错误: 需要class, interface或enumError:(1, 1) java: 非法字符: ‘\ufeff’原因:编码问题(从GBK编码的文件放到了UTF-8中,报错)解决方法:重新加载为gbk,再转成UTF-8这时编码变成了GBK,再次切换编码这样编码又变成了UTF-8,此时运行就不报错了...原创 2022-04-29 19:16:55 · 1080 阅读 · 2 评论 -
String与String Builder的区别
区别String是final修饰的、长度不可变的字符串,每次改变都会重新new一个新的对象(内存开销比较大)String Builder是变长的字符串,每次都是在原对象上进行操作应用场景如果要经常改变字符串内容优先使用String Builder,多线程共享变量时使用String Buffer测试//String每次改变都会重新new一个对象String s="a";Syst...原创 2022-02-21 21:34:00 · 80 阅读 · 0 评论 -
Java常用API
Java常用API目录Java常用API一、Math类1.1绝对值函数 abs1.2向上取整 ceil1.3向下取整 floor1.4四舍五入 round1.5 最大最小值 max min1.6 幂 pow1.7 随机数random二、System2.1 退出exit2.2 当前时间currentTimeMillis2.3 数组拷贝arraycopy三、Object类3.1 toString方...原创 2022-02-08 11:57:00 · 44 阅读 · 0 评论 -
【面试题】笔试题,数据类型定义
规则包装类型引用只能指向自己的基本类型,指向其他的会报错大类型引用指向小类型,不会报错小类型引用指向大类型,会报错,要强制类型转换正常小数都是double类型float类型要在小数后面加f测试://包装类型只能接收自己的基本类型 Double a=3;//报错 //正常小数都是double类型 //float类...原创 2022-03-01 14:59:00 · 30 阅读 · 0 评论 -
【Java】面试官:讲讲Java集合框架?
集合分为单列集合 Collection 和双列集合 Map。Collection 又分为 List 和 Set 集合。List 是有序可重复的集合,Set 是无序不可重复的集合,而 Map 则是无序集合。原创 2024-03-14 18:31:52 · 404 阅读 · 1 评论 -
java中的memset函数(数组初始化)
java中的memset函数(数组初始化)原创 2022-08-18 16:42:28 · 1437 阅读 · 0 评论 -
图片迁移Java
将指定文件夹下所有的文件全部复制到另一个文件夹下原创 2022-07-28 14:30:49 · 288 阅读 · 0 评论 -
okhttp的介绍以及如何发送同步/异步的http请求
OKHttp与HttpClient类似,也是一个Http客户端,提供了对HTTP/2和SPDY的支持,并提供了连接池,GZIP压缩和HTTP响应缓存功能;OkHttp是由Square公司开发的,除了OkHttp之外,还开发了Picasso、Retrofit等著名的开源项目,现在已经成了广大Android开发者首选的网络通信库。异步请求异步请求是发送请求后,服务器会在一边处理请求,中途可以去干别的。异步请求和同步请求在调用API的区别就是发送请求那一块,同步请求是。......原创 2022-07-22 15:23:00 · 2349 阅读 · 0 评论 -
文件夹监听FileListener
需要实现一个功能,监听某一个文件夹,当该文件夹有任何改动时(新增文件、删除文件),能够实时的获取到这条信息。原创 2022-07-22 10:28:18 · 1013 阅读 · 0 评论 -
Java集合中不要在 foreach 循环里进行元素的 remove/add 操作
强制】不要在foreach循环里进行元素的remove/add操作。remove元素请使用Iterator。方式,如果并发操作,需要对Iterator对象加锁。原创 2022-07-22 10:06:50 · 472 阅读 · 0 评论 -
Java的equals方法容易报空指针异常
当我们在判断对象是否相同时,按照如下方式编写报错Object 的 equals 方法容易抛空指针异常,应使用常量或确定有值的对象来调用equals。原创 2022-07-22 09:33:46 · 680 阅读 · 0 评论 -
Java输出流
java将内容输出到文件,有六种方法。字符流FileWriterBufferedWriter缓冲流,基于FileWriterPrintWriter打印流,基于FileWriter字节流FileOutputStreamBufferedOutputStream缓冲流,基于FileOutputStreamFilesFiles 类是 JDK 7 添加的新的操作文件的类,它提供了提供了大量处理文件的方法,例如文件复制、读取、写入,获取文件属性、快捷遍历文件目录等,这些方法极大的方便了文件的操作如果写入的内容是字符串的原创 2022-07-12 17:52:57 · 3799 阅读 · 0 评论 -
【图像处理】Java使用BufferedImage操作像素容易犯的错误
在使用java原生的API进行图像处理的时候,将图片读入BufferedImage中进行操作,非常容易出现下面的错误操作像素时,非常容易范一个错误,那就是行和列的顺序不对。BufferedImage中操作像素的API和OpenCV中正好是反着的。函数声明如下:(这里使用setRGB函数举例)看到文档中对于参数的描述,x指的的像素的横坐标,y指的的像素的纵坐标!!!,画张图吧当我们去遍历像素点时,按照常规逻辑,我们肯定是先遍历行,再遍历列。对应于指针i,j。然后我们在getRGB的时候就自然而然的在方原创 2022-07-08 12:59:58 · 1778 阅读 · 0 评论 -
【异常处理】BufferedImage读取tiff格式图片后获取参数报错
报空指针异常查了一下资料,Java8及之前BufferedImage是不支持tiff格式的文件的,从Java9才开始支持图像I/O框架(javax.imageio)是Java SE的一部分,它提供了一种插入图像编解码器的标准方法。所有实现都必须提供某些格式的编解码器,例如PNG和JPEG。此集合中缺少广泛使用的格式TIFF。多年来,代表小型和大型ISV的开发人员多次要求使用这种格式。由于苹果操作系统使用TIFF作为标准平台图像格式,目前我们还无法支持这一点,因此它现在也更具相关性。完全用Java编写的合适原创 2022-07-04 16:18:53 · 811 阅读 · 0 评论 -
JAVA中两个Integer对象比大小比我想象的要复杂(常量池)
先来说结论:对于new生成的两个对象,即使是内容相同结果始终是false;对于两个非new生成的Integer对象,进行比较的时候,如果变量的值在-128~127之间,则返回true,否则返回false。public static void main(String[] args) { Integer i1=11; Integer i2=11; System.out.println(i1==i2);//true Integer i3=127;原创 2022-02-19 12:36:44 · 466 阅读 · 0 评论 -
【Java笔记】线程通信、线程池、volatile关键字、synchronized
线程通信、线程池、volatile关键字、原子性三. 等待唤醒机制1. 线程通信2. 等待唤醒机制3. 生产者与消费者问题四. 线程状态五. 线程池六. 死锁七. volatile关键字1. 并发编程下变量不可见性问题2. 变量不可见性的含义3.变量不可见性解决方案3.1 加锁3.2 volatile关键字修饰4.volatile与synchronized八. 原子性1. volatile的原子性2. 保证原子性的操作2.1 加锁2.2 原子类3.原子类CAS机制实现线程安全3.1 概述3.2 CAS与Sy原创 2020-07-08 19:21:47 · 292 阅读 · 0 评论 -
【Java笔记】多线程与线程同步
文章目录一. 多线程1.并发与并行2.进程与线程3. 线程的创建3.1 继承Thread类3.2 实现Runnable接口3.3实现callable接口二. 线程安全1.案例2.线程同步2.1同步代码块2.2 同步方法2.3 lock显示锁一. 多线程1.并发与并行并发:指两个或多个事件在同一个时间段内发生。并行:指两个或多个事件在同一时刻发生(同时发生)。在操作系统中,安装了多个程序,并发指的是在一段时间内宏观上有多个程序同时运行,这在单 CPU 系统中,每一时刻只能有一道程序执行,即微观原创 2020-07-07 18:19:42 · 736 阅读 · 0 评论 -
【Java笔记】集合(三)Map接口及其实现类
Map接口及其实现类、HashMap八. Map集合1. 概述2. Map常用子类3.常用方法4. 遍历4.1 键找值方式4.2 键值对方式4.3 JDK1.8后的新技术:lambda表达式九. Map集合的实现类1. HashMap存储自定义类型键值对2. LinkedHashMap3.TreeMap4. 练习八. Map集合1. 概述现实生活中,我们常会看到这样的一种集合:IP地址与主机名,身份证号与个人,系统用户名与系统用户对象等,这种一一对应的关系,就叫做映射。Java提供了专门的集合类用来存原创 2020-07-05 16:22:19 · 540 阅读 · 0 评论 -
【Java笔记】集合(二)Set接口及其实现类、Collections
Set接口及其实现类、Collections五.Set集合六.Set集合的实现类1.HashSet1.1概述1.2哈希值1.3HashSet集合存储数据的结构(哈希表)1.4HashSet存储自定义类型元素2.LinkedHashSet3.TreeSet1.特点2.默认排序3.自定义排序(1)使用自然排序Comparable(2)使用比较器Comparator(3)TreeSet存储学生对象案例总结七. Collections工具类1. 常用方法2. 指定规则的排序五.Set集合java.util.Se原创 2020-07-04 10:23:44 · 493 阅读 · 2 评论 -
【Java笔记】集合(一)Collection接口、List接口及其实现类
一.集合1.集合概述集合:集合是java中提供的一种容器,可以用来存储多个数据。集合和数组既然都是容器,它们有啥区别呢?数组的长度是固定的。集合的长度是可变的。数组中存储的是同一类型的元素,可以存储基本数据类型值。集合存储的都是对象。而且对象的类型可以不一致。在开发中一般当对象多的时候,使用集合进行存储。2.集合框架JAVASE提供了满足各种需求的API,在使用这些API前,先了解其继承与接口操作架构,才能了解何时采用哪个类,以及类之间如何彼此合作,从而达到灵活应用。集合按照其存储结原创 2020-07-03 17:55:52 · 991 阅读 · 0 评论 -
【Java笔记】泛型、泛型通配符、可变参数
这里写目录标题泛型泛型概述泛型的好处泛型的定义1. 泛型类2. 泛型方法3. 泛型接口泛型通配符可变参数可变参数的使用泛型泛型概述大家观察下面代码:public class GenericDemo { public static void main(String[] args) { Collection coll = new ArrayList(); coll.add("abc"); coll.add("itcast"); co原创 2020-07-02 17:00:32 · 2772 阅读 · 0 评论 -
【Java笔记】异常处理
异常处理 java虚拟机的默认处理方案会在程序出现异常时结束程序,而实际项目中某一部分出现异常不应该影响后面程序的执行,所以要自己处理异常。Java的异常类编译时异常与运行时异常的区别Throwable的成员方法 异常祖先类Throwable的成员方法public class ThrowableTest { public static void main(String[] args) { System.out.println("开始"); met原创 2020-07-01 19:45:04 · 282 阅读 · 0 评论 -
【Java笔记】Object类的equals()和toString()方法
Object类Object类存在于java.lang包中,它是所有类的父类,所有类对Object类的继承是java默认的。下面给出Object类中最常用的两个方法。源码Object类的equals方法源码//Object类的equals方法源码 public boolean equals(Object obj) { return (this == obj);//比较地址 }Object类的toString方法源码//Object原创 2020-07-01 17:53:22 · 364 阅读 · 0 评论 -
【Java笔记】基础内容复习整理
成员方法1.方法重载在类的内部定义同名方法,只需要参数列表不相同就不会冲突,这叫做方法重载。满足以下任何一个条件,就实现了重载。参数个数不同相应位置参数的类型不同== 注意 ==:方法参数列表中参数名称的不同不能构成重载2. 构造方法构造方法是一种特殊的方法,它是用来初始化创建的对象的。特点:与类同名没有任何返回类型语法结构与一般方法相同注意:构造方法可以重载构造方法是在创建对象时系统自动调用的,其他情况不能直接调用。3. 封装实现封装的关键在于绝不能让类中的方法原创 2020-06-27 18:17:43 · 288 阅读 · 0 评论 -
一篇文章搞懂Java的多态性
多态的定义多态,是指同一行为具有多种表现形式或形态的能力。实现多态的技术称为:动态绑定,是指在运行期间(不是编译期间)根据对象的实际类型调用相对应的方法。举例:多种表现形态猫和狗都是动物,它们之间既有共同点,又有自己的特点。你让猫和狗一起叫,它们都会叫,但是叫声不一样。多态存在的条件继承重写(override)父类引用指向子类对象(向上转型)class Animal{//父类 void cry(){ System.out.println("动物叫");原创 2020-05-13 14:12:28 · 423 阅读 · 0 评论 -
Java用Math.random()随机生成[5,50]中的整数
分析random产生的是[0,1)中的随机小数首先如果想要生成整数,就要强制转换成int类型转换成整型后那么[5,50]这个区间也就可以写成[5,51)问题就变的很简单了,只需要让random()乘以(51-5)再加5 (int)(Math.random()*46+5)总结其实可以总结出公式:对于在==[m,n)==区间中随机生成浮点数,有如下公式 (int)(Math.r...原创 2020-03-24 16:57:47 · 2392 阅读 · 0 评论