![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java基础
puyuma
位于广州大学城的2020计算机应届毕业生,现就职于Infosys。
展开
-
你知道java中if和switch哪个效率快吗?
首先要看一个问题,if 语句适用范围比较广,只要是 boolean 表达式都可以用 if 判断;而 switch 只能对基本类型进行数值比较。两者的可比性就仅限在两个基本类型比较的范围内。说到基本类型的数值比较,那当然要有两个数。然后重点来了——if 语句每一句都是独立的,看下面的语句:if (a == 1) …else if (a == 2) …这样 a 要被读入寄存器两次,1 和 2 分别被读入寄存器一次。于是你是否发现其实 a 读两次是有点多余的,在你全部比较完之前只需要一次读入寄存器就行了转载 2020-11-27 13:53:22 · 1154 阅读 · 0 评论 -
java switch语句,多个case匹配相同的情况
case 1: case 2: xxx; break;原创 2020-11-26 16:02:44 · 6540 阅读 · 0 评论 -
Java如何判断字符串String为空?
if(str != null && !str.trim().isEmpty()){}前者表明该str没有被初始化,防止空指针异常;后者比较的是该str去除空格后的length,即不存在字符(去除空格后)。ps.不要使用("").equals(str)原因:equals()方法有很多的判断语句,还创建了临时数组和采用了循环,浪费了大量的CPU资源。java 6以后提供了 isEmpty()方法使用,所以以后用这个方法。参考文章:length()代替equals()检验字符串是否为原创 2020-08-28 16:35:44 · 259 阅读 · 0 评论 -
Hibernate配置实体类关联关系,但不生成数据库外键
今天在做一个快检项目时,项目总监说不要使用外键,原代码: @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "xxx_id")现在: @ManyToOne @JoinColumn(name = "xxx_id", foreignKey = @ForeignKey(name = "none", value = ConstraintMode.NO_CONSTRAINT))...原创 2020-08-17 15:39:24 · 395 阅读 · 0 评论 -
Handler dispatch failed; nested exception is java.lang.NoSuchMethodError
解决方案: 重跑tomcat允许项目即可原因 :改了方法名,但没有识别到改动后的这个方法,分析可能是缓存原因。原创 2020-08-06 10:52:11 · 404 阅读 · 0 评论 -
关于流的关闭:IOUtils.closeQuietly
在使用 stream 的时,往往要把流的关闭放到 finally 中去写,并且在 close 之前要判断一下是否为 null。但是 stream.close() 也会 throw IOException,这就导致在 finally 中 也需要 try catch 一下,于是代码就很长。如下: try { } catch (IOException e) { } finally { if (in != null) { try { in.原创 2020-05-20 11:04:34 · 8093 阅读 · 3 评论 -
解决:在maven中pom文件添加hibernate3的依赖
<dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-core</artifactId> <version>3.6.9.Final</version> </dependency>原创 2020-05-20 09:59:44 · 1868 阅读 · 0 评论 -
解决:[WARNING] The POM for***-SNAPSHOT is missing, no dependency information available
没有把jar包安装到本地仓库选中maven多模块中的某个模块,鼠标右键run as -> maven intall原创 2020-05-20 09:57:51 · 10279 阅读 · 0 评论 -
解决:[WARNING] Using platform encoding (UTF-8 actually) to copy filtered resources
在pom.xml中添加以下:<properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding></properties>原创 2020-05-20 09:53:42 · 199 阅读 · 0 评论 -
转:一篇文章让你轻易理解java反射是什么?
首先分享一篇关于反射的博文,因为我发现这篇博文写的很详细,地址是:https://blog.csdn.net/sinat_38259539/article/details/71799078然后开始我的表演:首先学习反射之前,我要提出疑问:反射是个什么东西?它是用来做什么的?平时的应用场景有哪些?为啥要用它?它有什么优缺点?它的工作原理是什么?我怎么使用它?这么多的问题,这是在挑衅啊,既然如此,那么我想起来宫...转载 2020-05-18 16:08:33 · 424 阅读 · 1 评论 -
深入浅出学Java——HashMap
深入浅出学Java——HashMap哈希表(hash table)也叫散列表,是一种非常重要的数据结构,应用场景及其丰富,许多缓存技术(比如memcached)的核心其实就是在内存中维护一张大的哈希表,本文会对java集合框架中HashMap的实现原理进行讲解,并对JDK7的HashMap源码进行分析。一、什么是哈希表在讨论哈希表之前,我们先大概了解下其他数据结构在新增,查找等基础操作...转载 2020-04-29 09:34:05 · 5869 阅读 · 2 评论 -
你知道equals()与hashcode()之间的关系吗?
目录1.equals()的作用是什么?1.1重写equals()方法1.2不重写equals()方法1.3对于equals(),我们必须遵循如下规则:2.equals() 与 == 的区别3.hashCode() 的作用是什么?3.1对于hashCode(),我们应该遵循如下规则:4.两者之间的关系1.equals()的作用是什么?定义在Object.java中的它,是根据判断两个对象之间的地...转载 2020-04-28 15:56:46 · 323 阅读 · 1 评论 -
你知道接口和抽象类有什么区别吗?
接口和抽象类有什么区别你选择使用接口和抽象类的依据是什么?接口和抽象类的概念不一样。接口是对动作的抽象,抽象类是对根源的抽象。抽象类表示的是,这个对象是什么。接口表示的是,这个对象能做什么。比如,男人,女人,这两个类(如果是类的话……),他们的抽象类是人。说明,他们都是人。人可以吃东西,狗也可以吃东西,你可以把“吃东西”定义成一个接口,然后让这些类去实现它.所以,在高级语言上,一个类只能...转载 2020-04-26 15:52:30 · 158 阅读 · 1 评论 -
java 计算出生到现在有多少天了
今天是我的生日哈哈,疫情期间而且我也在广州这边上班,不在老家朋友们也都在家办公这个生日注定平淡啦,不过期待过几天的五一五天长假哈哈,就能回家了~现在突发奇想,想算算自己已经在这个世界多少天了~public class birthdayDemo { public static void main(String[] args) throws ParseException { ...原创 2020-04-26 11:44:56 · 1481 阅读 · 0 评论 -
你知道Java中的位移动运算符代表什么意思吗?
<< 表示左移,不分正负数,低位补0 >> 表示右移,如果该数为正,则高位补0,若为负数,则高位补1>>> 表示无符号右移,也叫逻辑右移,即若该数为正,则高位补0,而若该数为负数,则右移后高位同样补0实例: System.out.println("8 << 2 : " + (8 << 2)); S...原创 2020-04-26 10:58:54 · 148 阅读 · 0 评论 -
你知道Java中seriaVersionUID=1L是什么意思吗?
相当于java类的身份证。主要用于版本控制。Java的序列化机制是通过在运行时判断类的serialVersionUID来验证袭版本一致性的。在进行反序列化时,JVM会把传来的字节流中的serialVersionUID与本地相应百实体(类)的serialVersionUID进行度比问较,如果相同就认为是一致的,可以进行反序列化,否则就会出现序列化版本不一致的异常有两种生成方式:一个是默认的1...原创 2020-04-26 10:06:11 · 6361 阅读 · 2 评论 -
转:Java虚拟机(JVM)你只要看这一篇就够了!
这里写目录标题1. Java 内存区域与内存溢出异常1.1 运行时数据区域1.1.1 程序计数器1.1.2 Java 虚拟机栈1.1.3 本地方法栈1.1.4 Java 堆1.1.5 方法区1.1.6 运行时常量池1.1.7 直接内存1.2 HotSpot 虚拟机对象探秘1.2.2 对象的内存布局1.2.3 对象的访问定位1.3 实战2. 垃圾回收器与内存分配策略2.1 概述2.2 对象已死吗?2...转载 2020-04-24 15:51:42 · 218 阅读 · 1 评论 -
你知道如何用java生成表格形式的pdf文件吗?(使用itext)
private String[][] content = new String[][]{ {"序号", "姓名", "年龄", "联系电话"}, {"1", "puyuma", "22","15911111111"} }; /** * 创建一份普通表格的PDF文件 * * @param full...原创 2020-04-24 14:42:24 · 527 阅读 · 0 评论 -
关于PropertyUtils与BeanUtils的copyProperties()
通过反射,把一个对象的属性值赋值给另一个对象的相同名字的属性(后者赋给前者)PropertyUtils的copyProperties()方法几乎与BeanUtils.copyProperties()相同,主要的区别在于后者提供类型转换功能,即发现两个JavaBean的同名属性为不同类型时,在支持的数据类型范围内进行转换,PropertyUtils不支持这个功能,所以说BeanUtils速度会更...原创 2020-04-23 10:29:27 · 268 阅读 · 0 评论 -
简洁明了:Java的匿名内部类
一 点睛匿名内部类适合创建那种只需要一次使用的类,定义匿名内部类的语法格式如下:new 父类构造器(实参列表) | 实现接口(){ //匿名内部类的类体部分}从上面的定义可以看出,匿名内部类必须继承一个父类,或实现一个...转载 2020-04-22 09:12:14 · 359 阅读 · 1 评论 -
JAVA:使用正则表达式(Pattern)移除List相应元素(如去除带数字的元素),附上java Pattern相关正则表达式
话不多说,上代码:List<String> list = new ArrayList<String>(){ { // list初始数据 addAll(Arrays.asList("puyuma0216puyuma".split("")));//将数组转化为list add("puyuma"); a...原创 2020-04-21 17:07:59 · 1222 阅读 · 1 评论 -
转:Java 面向对象 面试题
1、封装具有的特性?答:(1)在类的定义中设置访问对象属性(数据成员)及方法(成员方法)的权限,限制本类对象及其他类的对象使用的范围。(2)提供一个接口来描述其他对象的使用方法(3)其他对象不能直接修改本对象所拥有的属性和方法(4)封装反映了事物的相对独立性 (5)封装在编程上的作用是使对象以外的部分不能随意存取对象的内部数据(属性),从而有效地避免了外部错误对它的“交叉感染...转载 2020-04-20 13:58:41 · 566 阅读 · 0 评论 -
你知道String、StringBuffer和StringBuilder的区别吗?
String官方解释: String类是不可变类,即一旦一个String对象被创建以后,包含在这个对象中的字符序列是不可改变的,直至这个对象被销毁。也就是说,当我们String a = “111”;a=“222"时,并没有给原来堆中的实例对象重新赋值,而是生成了一个新的对象,并把a指向"222”,而之前的实例对象"111"依然存在,等待被垃圾回收处理。StringBuffer与StringB...原创 2020-04-20 10:19:36 · 14366 阅读 · 8 评论 -
报错:package org.springframework.stereotype包不存在
在pom.xml里添加: <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>4.2.5.RELEASE</version...原创 2020-04-20 10:15:56 · 760 阅读 · 0 评论 -
你知道方法重写与方法重载的区别吗
一、方法重写(0veriding)百度解释: 在Java和其他一些高级面向对象的编程语言中,子类可继承父类中的方法,而不需要重新编写相同的方法。但有时子类并不想原封不动地继承父类的方法,而是想作一定的修改,这就需要采用方法的重写。方法重写又称方法覆盖。重写体现了Java优越性,重写是建立在继承关系上,它使语言结构更加丰富。子类中的方法与父类中继承的方法有完全相同的返回值类型、方法名、参数个数以...原创 2020-04-20 10:14:36 · 222 阅读 · 0 评论 -
Jsoup获取部分页面数据失败 org.jsoup.UnsupportedMimeTypeException: Unhandled content type. Must be text/*, appl
jsoup 是一款Java 的HTML解析器,可直接解析某个URL地址、HTML文本内容。它提供了一套非常省力的API,可通过DOM,CSS以及类似于jQuery的操作方法来取出和操作数据。今天在学习jsoup的时候报了一个错,具体信息如图:通过网上查阅资料,发现是需要添加ignoreContentType(true),也就是忽略ContextType的检查。原代码:return ...原创 2020-04-20 10:11:38 · 315 阅读 · 0 评论 -
面向对象面试题
面向对象的优点?易扩展 易维护如何声名一个静态块?在类中方法外声明 static关键字+代码块接口与抽象类的区别?类是单继承的,但是可以实现多个接口抽象类里的方法可以有实例方法也可以有抽象方法接口里面只能有抽象方法。 详细可以点击这里用于类和接口的关键字定义类的是class,如类文件的开头都是:public class 类名{ }定义接口的是interface,...转载 2020-04-15 17:31:59 · 139 阅读 · 1 评论 -
BigDecimal.setScale用法总结
1. ROUND_DOWN(直接省略掉指定位数后的内容)BigDecimal bigDecimal = new BigDecimal(“2.125456”).setScale(2, BigDecimal.ROUND_DOWN);System.out.println(bigDecimal ); //结果:2.122. ROUND_UP(直接对指定位数后的内容做进一位处理)BigDecima...转载 2020-04-15 16:15:45 · 377 阅读 · 1 评论 -
java:使用LRUMap去除List中重复值
List<entityInfo> entities = new ArrayList<entityInfo>();//需去除list中实体的num重复值private Map<String, String> map = Collections.synchronizedMap(new LRUMap(100));int size = entities.size()...原创 2020-04-09 16:56:48 · 1585 阅读 · 0 评论 -
POI导出excel如何设置字体,颜色和自适应?
1.设置字体,颜色//设置styleCellStyle cstyle = workbook.createCellStyle();HSSFFont font = workbook.createFont();font .setFontHeightInPoints((short) 10);//字体大小font .setColor(Font.COLOR_BLUE);//字体颜色font.se...原创 2020-03-13 18:21:02 · 4175 阅读 · 0 评论 -
JAVA如何获取一个特定范围内的随机整数
例子:生成0-10之间的随机整数,包括10方法1Random r = new Random();int randNum = r.nextInt(11);//这里就是[0,11)方法2int random = (int)(Math.random()*10+1);//Math.random() 返回[0,1) double 型数值。生成1-10之间的随机整数,包括10int...原创 2020-03-13 16:28:21 · 3277 阅读 · 0 评论 -
附源码:javaweb实现文件上传(dropZone插件+文件上传工具类)
最近有时间,就整理整理自己做过的项目~这是某学院的信息档案系统网页开发项目里的文件上传业务。话不多说,进入正题效果图:记得先引入dropZone相关js/css。前端:html<div class="form-group"> <label class="col-sm-3 control-label "></label> <...原创 2020-03-13 15:25:41 · 1318 阅读 · 1 评论 -
POI中getLastRowNum() 和getLastCellNum()的区别
最近有时间,就整理整理自己做过的项目~这是某学院的信息档案系统网页开发项目里的文档导入导出业务。话不多说,进入正题首先,列标行标都是0开始的。第一个CELL,列标行标为0,行数列数为1。注意区分 列表行标 与 列数行数。getLastRowNum获取最后一行行标,而行标都是0开始的,所以比实际行数小1。此外:如果sheet中一行数据都没有则返回 -1;只有第一行有则返回 0;最...原创 2020-03-13 14:20:00 · 1710 阅读 · 0 评论 -
java后台将html转成图片返回给前端(html2image)
最近有时间,就整理整理自己做过的项目~这是某医院的微信网页开发项目。话不多说,进入正题1.引入依赖:<dependency> <groupId>gui.ava</groupId> <artifactId>html2image</artifactId> <version>0.9</version...原创 2020-03-13 08:38:35 · 5694 阅读 · 5 评论 -
java线程的三种实现方式比较(附运行结果图)
1.继承Thread类2.实现Runnable接口3.使用Callable和Future接口1.继承Thread类定义Thread类的子类,并重写Thread类的run()方法,创建子类对象(即线程对象),调用线程对象的start()方法来启动该线程。eg:public class myThread extends Thread { private int i; pub...转载 2020-02-28 17:27:40 · 997 阅读 · 0 评论 -
java判断一个字符串是否为空或空字符串(四种方法)
首先需要理解null和“ ”的区别:null表示这个字符串在栈中没有任何指向因此在堆中没有分配内存空间,如果要调用这个字符串会出现空指针异常 String str = null;这个str是空,没有被实例化,在栈中没有任何指向。 null表示这个字符串没有任何指向,因为null没有分配空间,“”在堆中分配了内存空间。 判断一个对象是否是空“” 用eques() 判断一个字符串是否是null 用 ...转载 2020-02-23 17:38:35 · 4971 阅读 · 0 评论 -
java如何跳出指定for循环?
最近有时间,就整理整理自己做过的项目~这是某学院的档案系统项目。话不多说,进入正题遇到的问题: 在多个for循环下,if条件满足时,跳出指定的某个for循环。解决办法: 给for循环取名,从而用break跳出指定for循环。代码如下:a:for(int n=0; n<=10 ; n++){ b:for (int i=0 ; i<=10 ; i++){ ...原创 2019-12-23 16:32:35 · 1532 阅读 · 1 评论 -
out.flush()和out.close()有什么作用?
flush是把流里的缓冲数据输出,flush以后还能继续使用这个OutputStream。close是把这个流关闭了,也就是说以后这个OutputStream就不能用了,不过关闭之前会把缓冲的数据都输出...原创 2019-12-23 16:14:04 · 11558 阅读 · 1 评论 -
for循环后List.add()只重复添加了最后一条数据
最近有时间,就整理整理自己做过的项目~这是某学院的档案管理系统。话不多说,进入正题错误代码 ArrayList arrayList = new ArrayList<Map<String, Object>>() Map<String, Object> map = new HashMap<>();//原因就出在这里 ...原创 2019-11-12 10:47:59 · 2768 阅读 · 1 评论 -
使用反射时遇到 org.apache.commons.beanutils.ConversionException: No value specified
原因为:使用BeanUtils时,有些类型值为空,例如Date。若为Date:- 1.设置默认值如 ConvertUtils.register(new DateConverter(null), java.util.Date.class);或在get/set方法中设置- 2.执行BeanUtils.copyProperties()方法前,判断对象属性值是否为空 if (!(CheckO...原创 2019-07-25 10:37:44 · 1180 阅读 · 0 评论