java笔记
ok_1234
这个作者很懒,什么都没留下…
展开
-
线程安全单例模式的问题
1.实现一:public class Singleton implements Serializable { private Singleton(){} private static final Singleton INSTANCE = new Singleton(); public static Singleton getInstance(){ return INSTANCE; } }1.1、为什么加final怕子类覆原创 2020-09-15 22:18:02 · 164 阅读 · 0 评论 -
单例设计模式
就是采取一定的方法保证在整个软件系统中,对某个类只能存在一个对象实例,并且该类只提供一个取得对象实例的方法(静态方法)。例如Hibernate的SessionFactory,它充当数据存储源的代理,并负责创建Session对象。SessionFactory并不是轻量级的,一般情况下,一个项目通常只需要一个SessionFactory就够了,这是时就会使用到单例模式。单例设计模式八种方式饿汉式(静态常量)饿汉式(静态代码块)懒汉式(线程不安全)懒汉式(线程安全,同步方法)懒汉式(线程安全,同步原创 2020-09-10 23:13:20 · 88 阅读 · 0 评论 -
MyBatis下
8.3 CRUD我们可以在工具类创建的时候实现自动提交事务!public static SqlSession getSqlSession(){ return sqlSessionFactory.openSession(true); }编写接口,增加注解@Insert("insert into user(id,name,pwd) values(#{id},#{name},#{password})") int addUser(User user);测试类【注意:我原创 2020-09-02 13:14:07 · 111 阅读 · 0 评论 -
Mybatis
1、简介1.1.持久化数据持久化持久化就是将程序的数据在持久状态和瞬时状态转换的过程内存:断电即失数据库(Jdbc),io文件持久化为什么需要持久化?有些对象,不能让他丢掉。内存太贵了1.2.持久层Dao层,Service层,Controller层…完成持久化工作的代码块层界限十分明显1.3.为什么需要Mybatis方便传统的JDBC代码太复杂了、简化、框架、自动化不用Mybatis也可以。更容易上手。优点:简单易学灵活sql和代码的分离,提高了可维护原创 2020-09-01 13:22:24 · 130 阅读 · 0 评论 -
HashMap的知识点
HashMap的知识点手写HashMap算法JDK7中为什么要用2的幂次方数(roundUpToPowerOf2)扩容与什么有关highestOneBit中的位运算原理jdk8红黑树重写equal方法为什么要重写hashcode方法手写HashMap算法 /** * @auther zj * @create 2020-08-04 8:00 */public class MyHashMap<K,V> { private Entry[] table; pr原创 2020-08-05 07:42:35 · 139 阅读 · 0 评论 -
在Java中尽量使用包装类Integer而不使用int
1、 在MySQL中没有给字段赋值默认为null,当你从数据库中查出来也是null,如果该字段在对应的Java代码中是int类型,null不能对应int类型,因为int代表的是基本数据类型,只能是基本的数字。2、实体类的属性你可以给它赋值也可以不给它赋值,当你不给它赋值时,它拥有默认值,比如int的默认值就为0。但是主动给它设置值为0与它默认为零是不同的概念。比如,一个班的成绩,0代表某学生分数为0,null代表这个学生该门考试没有成绩,这是两个不同的概念。...原创 2020-07-27 20:54:24 · 1051 阅读 · 0 评论 -
2020-07-06遇到的坑
1、编码问题,前端传的值到后端之后乱码之前在本地更改了编码格式但是放到测试的服务器上之后,还是出现乱码,就把上面的代码注释了之后,就正常了。原来是本地的Tomcat没有设置为UTF8的编码。设置的步骤:Tomcat配置步骤2.用easypoi导出的数据,打开之后,双击会变成文本格式。可能是版本的问题后面再解决...原创 2020-07-07 09:50:19 · 156 阅读 · 0 评论 -
springcloud之zookeeper使用
下载zookeeper的镜像文件:从仓库中pull这个zookeeper镜像:docker pull zookeeper:latest运行这个镜像文件,即启动一个zookeeper的容器docker run --name zk -d zookeeper:latest进入zookeeper容器中sudo docker exec -it image-id /bin/bash (image-id为容器的id)进入到bin目录下cd bin开启服务器端./zkServer. sh st原创 2020-07-05 06:12:57 · 240 阅读 · 0 评论 -
问题 2020-6-11
情况:项目中通过地区进行查询的时候,出现不属于该地区的内容,也被查询出来了。之前我的解决方案:直接到出问题的页面,查看对应的方法,通过阅读,找到可能相关的代码,进行更改。然后跑一下并输出相关的变量,看看问题是否解决。然后重复操作。现在的解决方案:在对应有问题的页面,通过开发者模式,查看他调用的接口。记住接口,通过idea的快捷键shift+ctrl+n,可以快速的搜索到对应的类,再在类里面搜索对应的方法(快捷键Ctrl+f),在方法内打断点,通过debug的方式查看对应调用逻辑过程。今天在用debug原创 2020-06-11 14:41:03 · 153 阅读 · 0 评论 -
问题 2020-6-10
MySQL查考数据表中某一列是否有重复数据解决:MySQL中,查询表(dat_bill_2018_11)中字段(product_id)值重复的记录:SELECT product_id, COUNT(*) AS sumCount FROM dat_bill_201811 GROUP BY product_id HAVING sumCount > 1;说明:先用GROUP BY 对 product_id 进行分组,同时使用COUNT(*)进行统计,再用HAVING来过滤大于1的,这样查找出来.原创 2020-06-10 18:00:45 · 156 阅读 · 0 评论 -
问题 2020-6-8
1.在一个项目的jsp页面中看到这样的代码,但是不知道数据是怎样注入的<t:menu menuFun="${menuMap}"></t:menu>可以参考这篇文章,大概知道是什么回事了,但是还是不好理清。2.MySQL去除重复数据select distinct name from table参考连接3.函数 toPlainString() 和 toString()区别import java.math.BigDecimal;public class BigDecim原创 2020-06-08 19:12:32 · 265 阅读 · 0 评论 -
调试代码
1.用浏览器打开需要调试的页面2.打开调试模式在谷歌浏览器中,点击F12,可以打开开发者模式。刷新页面就可以看到数据的传输。也可以通过鼠标右键,选择“重新加载框架”,可以查到某个部分的刷新。找到调用的接口,通过该接口去原程序中找到对应的方法进行修改。在idea中查找方法的快捷键为双击Alt。...原创 2020-06-08 11:34:29 · 278 阅读 · 0 评论 -
老项目在idea中的配置与启动
1、配置编译环境2.配置maven3.配置project structure依次将以下项目移除4.配置Tomcat因为本次项目比较老,只能使用Tomcat7出现“Port is not specified”的报错解决该报错只需要修改debug的端口即可,...原创 2020-06-08 10:46:19 · 899 阅读 · 0 评论 -
springboot+cache缓存下(原理篇)
原理1、自动配置类;CacheAutoConfiguration在idea中使用快捷键ctrl+shift+n,查找出CacheAutoConfiguration类看到import中有导入CacheConfigurationImportSelector类,我们通过对这个类进行debug查看过程中我们导入哪些选择器。可以看到返回如下的配置2.缓存的配置类org.springframework.boot.autoconfigure.cache.GenericCacheConfiguration原创 2020-06-01 10:01:09 · 439 阅读 · 1 评论 -
springboot+cache缓存上
cache内容缓存的意义:将方法的运行结果进行缓存,以后再要相同的数据,直接从缓存中获取,不用调用方法;cacheManager管理多个Cache组件,对缓存的真正操作CRUD操作在Cache组件中,每一个缓存组件有自己唯一一个名字;几个属性:cacheNames/value:指定缓存的名字;key:缓存数据使用的key:可以用它来指定。默认是使用方法参数的值 1-方法的返回值编写SpEL: #id:参数id的值 #a0 #p0 #root.args[0]keyGen原创 2020-05-29 14:48:05 · 192 阅读 · 0 评论 -
自己在读写文件遇到的问题
在写.net文件转化为.json文件时(代码为[email protected]:snippets/1957139.git),遇到了NullPointerException的问题,一度以为是自己在编写split(“ ”)时出现了错误,就一直在查找这个问题。然后又发现似乎也与while(line!=null){}这个语句块相关,就想着 用什么方法能把这个语句替换掉,一直也没办法替换。接着原创 2016-10-30 19:13:13 · 179 阅读 · 0 评论