
Java
谦虚的兔子
谦虚的兔子。
展开
-
161_对null进行强转
有如下代码:package com.rabbit.data;public class NullTest { public static void test() { System.out.println("test"); } public static void main(String[] args) { ((NullTest)null).test(); } }...原创 2020-03-22 22:10:47 · 427 阅读 · 0 评论 -
156_Java中公平锁和非公平锁简单理解
公平锁:采用队列的方式,先来的先拿到锁。非公平锁:不保证先来先拿到锁。java中synchronized是非公平锁,ReentrantLock可以通过参数指定是公平锁还是非公平锁。...原创 2020-02-10 14:33:07 · 186 阅读 · 0 评论 -
155_CyclicBarrier使用参考代码
barrier.await();import lombok.extern.slf4j.Slf4j;import java.util.concurrent.CyclicBarrier;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;@Slf4jpublic cla...原创 2020-02-10 11:04:57 · 253 阅读 · 0 评论 -
154_Semaphore使用参考代码
semaphore.acquire();import lombok.extern.slf4j.Slf4j;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;import java.util.concurrent.Semaphore;@Slf4jpublic cla...原创 2020-02-10 10:29:41 · 189 阅读 · 0 评论 -
153_CountDownLatch使用参考代码
import lombok.extern.slf4j.Slf4j;import java.util.concurrent.CountDownLatch;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;@Slf4jpublic class CountDownLatchE...原创 2020-02-09 15:13:21 · 193 阅读 · 0 评论 -
152_枚举模式实现线程安全的单例
public class SingletonEnumTest { private SingletonEnumTest() { } public static SingletonEnumTest getInstance() { return Singleton.INSTANCE.getInstance(); } private enum Singleton{ IN...原创 2020-02-05 23:16:04 · 261 阅读 · 0 评论 -
151_这个单例是线程安全的吗
public class SingletonTest { private SingletonTest() { } private static SingletonTest instance = null; public static SingletonTest getInstance() { if(instance == null) {//判空 synchron...原创 2020-02-05 22:51:44 · 185 阅读 · 1 评论 -
136_final map 需要注意的一个小点
package test;import java.util.HashMap;import java.util.Map;public class FinalTest { private static final Map<String,String> map = new HashMap<String,String>(); public static v...原创 2019-12-22 12:36:47 · 1026 阅读 · 0 评论 -
129_深入浅出Stream和parallelStream
什么是流?Stream是java8中新增加的一个特性,被java猿统称为流.Stream 不是集合元素,它不是数据结构并不保存数据,它是有关算法和计算的,它更像一个高级版本的 Iterator。原始版本的 Iterator,用户只能显式地一个一个遍历元素并对其执行某些操作;高级版本的 Stream,用户只要给出需要对其包含的元素执行什么操作,比如 “过滤掉长度大于 10 的字符串”、“获取...转载 2019-11-17 16:58:46 · 463 阅读 · 0 评论 -
99_Java中main方法参数args[]如何赋值
转载 2019-05-20 16:16:47 · 2521 阅读 · 0 评论 -
98_Java打印一维和多维数组
package test;import java.util.Arrays;/*** @author rabbit* @version 创建时间:2019年5月20日 下午3:52:31*/public class ArraysTest { public static void main(String[] args) { //打印1维数组 int[] a = new ...原创 2019-05-20 15:55:31 · 177 阅读 · 0 评论 -
87_BigDecimal的doubleValue()、toString()、toPlainString()与科学计数法
主题:BigDecimal.toPlainString()可以避免出现科学计数法格式的数据。项目上面有个小伙伴在用Bigdecimal进行数值计算时,用return num.doubleValue()+"";的方式将结果送到前台,测试数值较小时无问题,实际项目运行时,数值较大,结果页面显示的内容变为科学计数法形式。发现问题后,又一小伙伴将之改为return num.toString();,结果...转载 2019-05-07 10:43:19 · 4314 阅读 · 1 评论 -
94_Java中 1左移35位 和 1左移3位 结果是否相等?
@Testpublic void test(){ //位移运算符的右操作数要完成模32的运算,如下两个操作值相等 System.out.println(1 << 35);//8 System.out.println(1 << 3);//8 //如果左操作数是long类型,那么右操作数会完成模64的运算 System.ou...原创 2019-05-13 21:32:26 · 1534 阅读 · 0 评论 -
89_spring定时器使用注解@Scheduled执行任务,fixedDelay、fixedRate和cron区别
注解@Scheduled 可以作为一个触发源添加到一个方法中,例如,以下的方法将以一个固定延迟时间5秒钟调用一次执行,这个周期是以上一个调用任务的完成时间为基准,在上一个任务完成之后,5s后再次执行: 1 2 3 4 @Scheduled(fixedDelay=5000) publicvoiddoSomething(){...转载 2019-05-08 09:54:01 · 632 阅读 · 0 评论 -
122_eclipse某个类报错:MethodBinding cannot be cast to FieldBinding
Errors occurred during the build.Errors running builder 'Java Builder' on project 'xxx'.org.eclipse.jdt.internal.compiler.lookup.MethodBinding cannot be cast to org.eclipse.jdt.internal.compiler.l...原创 2019-08-03 14:57:33 · 1589 阅读 · 0 评论 -
81_如何用eclipse反编译一个war包或者jar包
1.随便新建一个java项目。2.将准备反编译的包用压缩工具解压。3.将解压后的文件夹里的内容直接拷贝到1中新建的项目中。4.此时,拷贝到项目中的class文件们,就出现在项目中了,直接双击打开class文件是不行的,应该用鼠标拖动到eclipse的代码窗口中,此时就会生成反编译后的java代码了。...原创 2019-03-27 09:20:43 · 1602 阅读 · 0 评论 -
100_几句话解释Java中的重载
同一个类中,如果多个方法有相同的名字、不同的参数,那么就产生了重载。Java允许重载任何方法,而不只是构造方法。因此,想要准确的确定一个方法,需要指出方法名和该方法的参数类型,这叫做方法的签名。返回值类型不是方法签名的一部分,也就是说,同一个类中,不能有两个名字相同、参数类型也相同却有不同类型返回值的方法。...原创 2019-05-22 15:36:16 · 215 阅读 · 0 评论 -
96_String的join方法
@Testpublic void test(){ //把多个字符串拼接在一起,并用指定字符串分割。 System.out.println(String.join(" / ","S","M","L","XL"));//输出结果:"S / M / L / XL"}原创 2019-05-17 21:52:27 · 182 阅读 · 0 评论 -
108_springboot指定配置文件运行,以及打包后运行时指定配置文件
1.springboot指定配置文件运行创建三个配置文件如下:application.properties内容如下:spring.profiles.active=rabbit如上配置,在运行时就会使用application-rabbit.properties配置文件运行,如果rabbit改成test,那么运行时就会使用application-test.properties配置...原创 2019-05-30 20:58:52 · 14042 阅读 · 0 评论 -
97_Java替换字符串中所有指定的子串
@Testpublic void test(){ //将字符串中所有指定的子串替换成新的字符串 System.out.println("hello world,hello java".replace("llo", "he"));//输出:"hehe world,hehe java"}原创 2019-05-18 15:55:08 · 3305 阅读 · 0 评论 -
112_报错解决:springboot : java.lang.NoClassDefFoundError ch/qos/logback/core/joran/spi/JoranException
报错:Failed to instantiate SLF4J LoggerFactoryReported exception:java.lang.NoClassDefFoundError: ch/qos/logback/core/joran/spi/JoranExceptionat org.slf4j.LoggerFactory.bind(LoggerFactory.java:1...原创 2019-06-18 11:30:59 · 961 阅读 · 0 评论 -
119_Linux替换jar包中的指定文件
假设要将包中的BOOT-INF/classes/templates/message.ftl替换成新的。1.来到原jar包所在目录。2.在当前目录新建目录:mkdir -p BOOT-INF/classes/templates3.将新的message.ftl文件放到第二步中创建好的路径下。4.在原jar包所在目录下,运行命令对目标文件进行替换:jar uvftemp.jar BOO...原创 2019-07-25 14:32:47 · 486 阅读 · 0 评论 -
120_springboot处理跨域
1.处理跨域Application中增加如下方法即可: import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.web....原创 2019-07-26 10:32:36 · 3236 阅读 · 0 评论 -
124_基于poi的Excel操作工具类,并没有感觉到easypoi有多easy和方便,所以写了这个。
1.pom文件<dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml</artifactId> <version>3.5-FINAL</version></dependency>2.工具...原创 2019-09-03 10:53:28 · 492 阅读 · 0 评论 -
126_Unknown pom.xml line 1 Maven Configuration Problem
<properties>标签中增加:<maven-jar-plugin.version>3.0.0</maven-jar-plugin.version>然后右键项目--Maven--Update Project...即可。原创 2019-09-17 11:02:25 · 2332 阅读 · 0 评论 -
79_一直在用的maven_setting.xml文件
第三行中,仓库路径记得改下。<?xml version="1.0"?> <settings> <localRepository>C:\Users\rabbit\.m2\repository</localRepository> <mirrors> <mirror>原创 2019-03-15 21:50:44 · 214 阅读 · 0 评论 -
22_国际短信国家代码sql脚本
sql下载地址:https://download.youkuaiyun.com/download/zs345048102/10562897下面是建表语句:CREATE TABLE `msg_country_code` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name_en` varchar(100) DEFAULT NULL COMMENT '国际名...原创 2018-07-25 12:35:13 · 1172 阅读 · 0 评论 -
20_java使用谷歌邮箱发送邮件
最后有贴代码。主要是为了记录问题:Please log in via your web browser and then try againjavax.mail.AuthenticationFailedException: 534-5.7.14 <https://accounts.google.com/signin/continue?sarp=1&scc=1&plt...原创 2018-07-16 19:51:38 · 19847 阅读 · 11 评论 -
26_Java判断String是否以某个字符串开头或结尾
Java判断String是否以某个字符串开头:String mobile = "8618730600000";System.out.println(mobile.startsWith("86"));//输出trueSystem.out.println(mobile.startsWith("886"));//输出falseJava判断String是否以某个字符串结尾:String...原创 2018-07-27 14:56:18 · 53360 阅读 · 0 评论 -
27_Java截取字符串
Java截取字符串:String mobile = "8618730600011";System.out.println(mobile.substring(2, mobile.length()));//输出:18730600011System.out.println(mobile.substring(0, mobile.length()-2));//输出:86187306000sub...原创 2018-07-27 15:01:47 · 228 阅读 · 0 评论 -
36_获取当前时间是今年的第几周
java获取当前时间是今年的第几周:public static int getWeekOfYear(){ Calendar c = Calendar.getInstance(); c.setFirstDayOfWeek(Calendar.MONDAY);//将周一设为一周的开始,符合中国的习惯 return c.get(Calendar.WEEK_OF_YEAR);} ...原创 2018-09-10 11:22:18 · 406 阅读 · 0 评论 -
74_springboot整体修改controller返回值
只需要增加一个这样的类就可以了。@ControllerAdvicepublic class MyResponseBody implements ResponseBodyAdvice{ private static final Logger logger = LoggerFactory.getLogger(MyResponseBody.class); @Override publ...原创 2019-02-23 16:44:16 · 2942 阅读 · 1 评论 -
72_springboot添加静态网页
1.在resources目录下创建static文件夹2.把静态网页hello.html放到static文件夹下3.项目启动后直接访问即可。例如:localhost:8080/hello.html原创 2019-02-22 15:29:49 · 6009 阅读 · 0 评论 -
65_Eclipse创建类时自动添加创建者和创建日期
windows => preferences => Java => Code Style => Code Templates => Code => New Java Files => Edit填入内容如下:/*** @author rabbit* @version 创建时间:${date} ${time}*/下面是截图示例:...原创 2019-01-25 14:31:28 · 1700 阅读 · 0 评论 -
57_Java.math.RoundingMode 几个参数详解
java.math.RoundingMode里面有几个参数搞得我有点晕,现以个人理解对其一一进行总结:为了能更好理解,我们可以画一个XY轴RoundingMode.CEILING:取右边最近的整数RoundingMode.DOWN:去掉小数部分取整,也就是正数取左边,负数取右边,相当于向原点靠近的方向取整RoundingMode.FLOOR:取左边最近的正数RoundingMo...转载 2019-01-08 15:57:38 · 152 阅读 · 0 评论 -
47_Java开启新线程,异步执行代码
new Thread(){ public void run(){ syso(1); }}.start();原创 2018-11-03 10:59:42 · 5576 阅读 · 0 评论 -
45_局域网ip正则表达式
//java匹配内网ip正则private static final String INNER_IP_REGEX = "(127[.]0[.]0[.]1)|" + "(localhost)|" + "(10[.]\\d{1,3}[.]\\d{1,3}[.]\\d{1,3})|" + "(172[.]((1[6-9])|(2\\d...原创 2018-10-29 22:38:09 · 1016 阅读 · 0 评论 -
39_linux安装jdk
1.将jdk放到xxx路径下2.在/etc/profile文件最后追加:export JAVA_HOME=xxx/jdk # 比如:/home/jdk1.8.0_181export JRE_HOME=${JAVA_HOME}/jre export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib export PATH=${JAVA_H...原创 2018-10-25 11:10:26 · 182 阅读 · 0 评论 -
38_javaWeb接口,多个排序字段,用户随机选一个
0.可排序字段:id,age,income 1.查询接口中,有一个orderBy参数 2.如果用户选择的age,那么就把orderBy参数的值设置成age 3.java中,伪代码如下(因为第4步中,我们会用$符号取值,在这里防止sql注入):if(orderBy == "id"){ orderBy = "id";}else if(orderBy == "a...原创 2018-10-11 20:20:25 · 503 阅读 · 0 评论