java
我不想赢, 但是我更加不愿意输
JAL-H
JavaSoul
展开
-
Optional 判断普通对象和集合对象
普通对象集合对象 首先下面代码中的List放入了很多Person对象,其中有的对象是null的,如果不加校验调用Person的getXXX()方法肯定会报空指针错误,一般我们采取的方案就是加上if判断:public class DemoUtils { public static void main(String[] args) { List<Person> personList = new ArrayList<>(); person转载 2022-01-31 16:47:10 · 1444 阅读 · 0 评论 -
servlet是单例还是多例
Servlet容器默认是采用单实例多线程的方式处理多个请求的: 1.当web服务器启动的时候(或客户端发送请求到服务器时),Servlet就被加载并实例化(只存在一个Servlet实例); 2.容器初始化化Servlet主要就是读取配置文件(例如tomcat,可以通过servlet.xml的设置线程池中线程数目,初始化线程池通过web.xml,初始化每个参数值等等。 3.当请求到达时,Servlet容器通过调度线程(Dispatchaer Thread) 调度它管理下线程池中等待执行的线程(Wo原创 2022-01-05 18:04:52 · 1113 阅读 · 0 评论 -
toString()、String.valueOf、(String)强转,有啥区别
转载 2021-10-28 09:52:34 · 61 阅读 · 0 评论 -
idea 自己常用的快捷键
ctrl+D 复制当前行到下一行ctrl+shift+F 全局查文件或关键字ctrl+Alt+B 展示接口的实现类Ctrl+Y 删除当前行Ctrl+Alt+L 格式化代码后缀补全var 声明null 判空 student.nullnotnull 判非空 student.nullnn 判非空for 遍历fori 带索引的遍历not 取反if 条件判断 isSuccess.ifcast 强转return 返回值 list.return选中代码块原创 2021-10-27 18:37:48 · 510 阅读 · 0 评论 -
group_by、concat以及group_concat的用法
GROUP BY 语句根据一个或多个列对结果集进行分组。会把值相同放到一个组中,最终查询出的结果只会显示组中一条记录。转载 2021-10-11 18:05:11 · 2900 阅读 · 0 评论 -
Git冲突“accept theirs”和“accept yours”、merge
转载 2021-10-09 17:49:54 · 2111 阅读 · 0 评论 -
在数据库所有表中查找一个字段的值
原创 2021-10-08 18:10:16 · 1263 阅读 · 0 评论 -
Java中Arrays
转载 2021-10-08 11:21:40 · 59 阅读 · 0 评论 -
POI导出Excel,xls与xlsx设置response的区别
原创 2021-09-30 18:11:19 · 586 阅读 · 0 评论 -
用户上传文件小技巧
在Redis中设置一个标志位,防止短时间内同一用户上传多个文件,即对于每一个用户处理文件的顺序是串行的,在处理期间,上传的文件会被忽略掉。jedisCluster.set(key,“1”);原创 2021-09-30 15:32:26 · 316 阅读 · 0 评论 -
使用MultipartFile做文件的上传于下载
使用MultipartFile的好处:案例:前端传过来MultipartFile,后端转为file后删除本地缓存文件后台接收的需要转换为一个File类型的接受前端文件:MultipartFile file111 = ((MultipartHttpServletRequest) httpServletRequest).getFile("前端传得文件名");使用下面的静态方法转换package com.hswg.jstxb.issued.common.FileUtil;/** * Crea原创 2021-09-30 11:15:44 · 507 阅读 · 0 评论 -
Java 判断集合是否为空或者size等于0
原创 2021-09-14 16:17:47 · 1141 阅读 · 0 评论 -
POI导出案例
Map<String,Object> result = new HashMap<>();SXSSFWorkbook wb = new SXSSFWorkbook(500); //hssf是03版,xssf是07版的,但是这个07版的有内存泄露的问题,sxssf是该版本的改进版,可以解决内存溢出,就是导出的格式稍有变化.xlsxCellStyle cellStyle =wb.createCellStyle();cellStyle.setWrapText(true); //设置为原创 2021-09-01 18:15:54 · 115 阅读 · 0 评论 -
Hash表的作用与特点
arrayList和linkedLst 一个查找和修改快,一个添加和删除快,都有各自的缺点,使用hashMap可以将两者的优点结合起来。但是hashMap不能将记录进行一个排序,那么使用有序的二叉树之后,又将hashMap的缺点消除。哈希表和其他结构的对比一般的线性表,树中,记录在结构中的相对位置是随机的,即和记录的关键字之间不存在确定的关系,因此,在结构中查找记录时需进行一系列和关键字的比较。这一类查找方法建立在“比较“的基础上,查找的效率依赖于查找过程中所进行的比较次数。补充:由于哈希算法本身的转载 2021-08-12 18:07:31 · 212 阅读 · 0 评论 -
idea 搜索类与全局搜索或页面搜索(包括文字)
双击shift 只能搜索类在某个页面 Ctrl + R 搜索这个页面的任何文字Ctrl+shift+R 可以整个项目中搜索任何文字原创 2021-08-04 18:26:25 · 2658 阅读 · 0 评论 -
为什么是List list = new ArrayList(),而不直接用ArrayList
转载 2021-08-04 14:23:38 · 151 阅读 · 0 评论 -
Redis删除特定前缀key的所有值
转载 2021-07-30 17:46:31 · 1177 阅读 · 0 评论 -
@configuration和@bean
对比,@configuration相当于配置文件,@bean相当于bean标签原创 2021-06-10 18:07:35 · 96 阅读 · 0 评论 -
spring注解驱动开发
原创 2021-06-10 17:57:02 · 73 阅读 · 0 评论 -
JSon格式问题
key 必须写作字符串形式, 并且须以双引号而非单引号引起.值可以是多种数据类型,如:1、数字(整数或浮点数)2、字符串(在双引号中)3、逻辑值(true 或 false)4、数组(在方括号中)5、对象(在花括号中)6、nullJson的key可以是数字么?解释json是javascript的子集,在javascript中,只能使用字符串作为对象的key,看一下示例:可以看到实际上还是自动转为了字符串...原创 2021-06-06 23:26:15 · 136 阅读 · 1 评论 -
EL表达式
EL表达式只能用在JSP页面中${page.userName}${request.userName}${session.userName}${application.userName}默认查找顺序:pageContext-》request-》session-》application按照上述的顺序进行查找,找到立即返回,在application中也无法找到,则返回null参考...原创 2021-05-04 17:07:06 · 39 阅读 · 0 评论 -
springmvc 请求和参数的处理
数据处理1、提交的域名称和处理方法的参数名一致提交数据 : http://localhost:8080/hello?name=kuangshen处理方法 :@RequestMapping("/hello")public String hello(String name){ System.out.println(name); return "hello";}2、提交的域名称和处理方法的参数名不一致提交数据 : http://localhost:8080/hello?usernam转载 2021-05-03 18:13:01 · 91 阅读 · 0 评论 -
spring 核心
1、IoC控制反转和DI依赖注入 传统程序设计中,我们需要使用某个对象的方法,需要先通过new创建一个该对象,我们这时是主动行为;而IoC是我们将创建对象的控制权交给IoC容器,这时是由容器帮忙创建及注入依赖对象,我们的程序被动的接受IoC容器创建的对象,控制权反转,所以叫控制反转。由于IoC确实不够开门见山,所以提出了DI(依赖注入:Dependency Injection)的概念,即让第三方来实现注入,以移除我们类与需要使用的类之间的依赖关系。总的来说,IoC是目的,DI是手段,创建对象的过程往往转载 2021-04-16 18:18:44 · 50 阅读 · 0 评论 -
java8 :: 用法 (JDK8 双冒号用法)
jdk8中使用了::的用法。就是把方法当做参数传到stream内部,使stream的每个元素都传入到该方法里面执行一下,格式: 类名::方法名 案例:表达式:person -> person.getAge();使用双冒号:Person::getAge其实这里就是省略了参数的书写(毕竟流中的元素都要进行一遍操作) ArrayList<String> collect = a1.stream().map(String::toUpperCase).collect(Col转载 2021-04-08 17:29:56 · 210 阅读 · 0 评论 -
window 修改 配置 host
使用git bash here 右键etc目录(git的客户端)进入后vi hosts 编辑即可还有其他的方法原创 2021-04-08 16:39:03 · 161 阅读 · 0 评论 -
restful api的调用(http接口调用)
import java.io.BufferedReader;import java.io.InputStreamReader;import java.net.HttpURLConnection;import java.io.IOException;import java.io.InputStream;import java.net.URL;public class SelectLog { //根据url获取返回的结果 //geturl为外部接口地址 ..原创 2021-04-08 16:32:19 · 972 阅读 · 0 评论 -
spring mvc 常见的请求
示例1:@RestController@RequestMapping("userInfo")public class UserInfoController { @Resource private UserInfoService userInfoService; @GetMapping("selectOne") public UserInfo selectOne(Long id) { return this.userInfoService.queryB原创 2021-04-07 23:16:28 · 74 阅读 · 0 评论 -
git修改用户名和密码(换了公司之后)
$ git config --global --replace-all user.name “要修改的用户名”$ git config --global --replace-all user.email"要修改的邮箱"$ git config --global --replace-all user.password “要修改的密码”查看修改完后的用户名:$ git config user.name查看修改完后的邮箱:$ git config user.email查看修改完后的密码:$ git转载 2021-04-07 10:23:45 · 2694 阅读 · 0 评论 -
Java线程虚假唤醒
使用if判断比如加1和减1的案例两个加1和两个减1其中一个线程完成了减1的操作,会唤醒其他所有的线程,两个加1的线程都判断到了此时应该加1,但是只有其中的一个线程会得到锁对象,进行加一,然后释放锁对象并唤醒其他的线程,这时会有两种情况发生,如果是减一的线程获取到了锁对象,那么此时是正常的,如果是刚才判断了之后没有获得锁对象进行加一的线程获取了锁对象,那么就会继续从刚才执行完的if开始进行一个加一的操作,就出现了抢占资源的情况,这时就是一个虚假唤醒。/*** 线程之间的通信问题:生产者和消费者问题!原创 2021-03-02 22:34:20 · 122 阅读 · 0 评论 -
新项目解决依赖
点击idea的下载依赖之后,有的依赖仍然报错,去本地仓库查看,比如这个依赖 <dependency> <groupId>xml-apis</groupId> <artifactId>xml-apis</artifactId> <version>${xml-apis.version}</version></dependency>在本地仓库中发现有这么多个版本,而我项目中是1.4.原创 2021-02-09 19:19:02 · 103 阅读 · 0 评论 -
ON DUPLICATE KEY UPDATE添加或更新(转)
首先主键是索引insert into ys_yssf_rj(customerId,settleDate,settleMoney,settleActual, settleBalance,settleAccountState)VALUES(#customerId#,now(),#settleMoney#,#settleActual#,#settleBalance#,#settleAccountState#)ON DUPLICATE KEY UPDATEsettleDate = now(),s转载 2020-12-03 11:18:24 · 295 阅读 · 0 评论 -
idea查看方法的接口和方法的具体代码
开发的时候,有时想看所调用的方法的具体实现代码,按住Ctrl+鼠标点击去,跳转到这个方法的接口上,这明显不是我们想要的,那如何跳转到这个方法的具体实现方法上呢?解决方法:快捷键ctrl+alt+鼠标,点击进去即可。亲试可行,极力推荐或者右键方法–》go to–》implementations...转载 2020-12-01 11:37:24 · 2729 阅读 · 1 评论 -
ssm框架整合笔记
@Servicepublic class ItemServiceImpl implements ItemService { @Autowired 将类当做属性注入,然后调用其中的方法 private ItemMapper itemMapper; @Override public List<Item> queryItemList() { // 从数据库查询商品数据 List<Item> list = this.itemMapper.sele原创 2020-10-01 19:18:56 · 341 阅读 · 0 评论 -
@PathVariable和@RequestParam的区别
通过 @PathVariable 可以将 URL 中占位符参数绑定到控制器处理方法的入参中:URL 中的 {xxx} 占位符可以通过注解@PathVariable(“xxx“) 绑定到操作方法的入参中。@RequestMapping(value = “/index/{id}”请求路径:http://localhost:8080/hello/user/index/1@RequestMapping(value = "/index/{id}", method = RequestMethod.GET)pub转载 2020-09-07 19:28:37 · 115 阅读 · 0 评论 -
乐观锁与悲观锁(待补充)
悲观锁(防止并发修改)当我们要对一个数据库中的一条数据进行修改的时候,为了避免同时被其他人修改,最好的办法就是直接对该数据进行加锁以防止并发。这种借助数据库锁机制在修改数据之前先锁定,再修改的方式被称之为悲观并发控制(又名“悲观锁”,Pessimistic Concurrency Control,缩写“PCC”)。...原创 2020-09-02 22:23:52 · 73 阅读 · 0 评论 -
spring boot初始化项目网络连接超时
安装Cloud Toolkit您可以在JetBrains插件市场搜索Alibaba Cloud Toolkit并下载安装。若出现插件市场访问缓慢、无法下载的情况,可使用离线包安装。在插件市场中下载安装。在IntelliJ IDEA顶部菜单栏中选择File > Settings。在Settings对话框的左侧导航栏中单击Plugins。在Plugins 区域单击Marketplace。在搜索栏中输入Alibaba Cloud Toolkit。Search Results区域会出现Alib原创 2020-08-17 18:00:34 · 603 阅读 · 0 评论 -
csdn导入md文件图片问题解决
在Chrome商店下载微博图床这个插件登录自己的微博,使用这个插件上传图片复制Markdown的连接地址放到自己本地的正在编辑的md文件最后就是上传到csdn, 这样就不会有外链图片转存失败的问题...原创 2020-08-02 12:53:41 · 2848 阅读 · 6 评论 -
return R.ok()
https://www.cnblogs.com/liuyi13535496566/p/11626533.html转载 2020-07-25 12:10:48 · 6428 阅读 · 0 评论 -
group、artifact、package
模块的依赖关系形成的包1、产生的项目结构文件与groupId(yi.er.san)无关;2、项目下的模块名就是你的artifactId值(si-wu),即testArchetypeGenerate\si-wu;3、模块文件中递进产生(又是自己发明的用语。。)的文件夹就是依据packageName(liu.qi.ba)创建的,即testArchetypeGenerate\si-wu\liu\qi\ba\App.java,其中App.java是自动创建的一个hello world类。总结:1、.原创 2020-07-23 10:34:29 · 1147 阅读 · 0 评论 -
匿名内部类
什么是匿名内部类如果在一个类里面定义一个类,那么这个类就是内部类,外面的那个类就是外部类,这个很好理解。内部类就相当于外部类的一个成员,你可以把内部类看成一个整体。内部类分为:静态内部类,非静态内部类。匿名内部类是非静态内部类的一种特殊情况,匿名内部类没有类名,因此就不可能有构造函数,不能创建对象。除此之外还有局部内部类,就是定义在方法内的,这个一般不怎么用,不需要掌握,知道就好,本文主要说匿名内部类,其他内部类以后会说。如果接口的实现类(或者是父类的子类)只需要使用唯一的一次,那么这种情况下就可以省原创 2020-07-17 10:03:36 · 112 阅读 · 0 评论