java
文章平均质量分 65
酱油砖家
我是酱油砖家 而不是酱油专家
展开
-
WebSocket用户验证
在WebSocket中,如何携带用户的验证信息。原创 2024-04-01 16:02:34 · 2126 阅读 · 1 评论 -
java中的锁机制
在java中的锁分为以下(其实就是按照锁的特性和设计来划分):1、公平锁/非公平锁2、可重入锁3、独享锁/共享锁4、互斥锁/读写锁5、乐观锁/悲观锁6、分段锁7、偏向锁/轻量级锁/重量级锁8、自旋锁(java.util.concurrent包下的几乎都是利用锁)从底层角度看常见的锁也就两种:Synchronized和Lock接口以及ReadWriteLock接口(读写锁)从类关系看出Lock接口是jdk5后新添的来实现锁的功能,其实现类:ReentrantLock、WriteLock转载 2020-06-23 02:14:11 · 257 阅读 · 0 评论 -
java线程安全——原子操作
竞态条件和临界区多线程访问相同资源,对资源进行写操作时,对执行顺序有要求。public class Demo { public int i = 0; public void incr() { i++; }}临界区:incr方法内部就是临界区域,关键部分代码的多线程并发执行,会对执行结果产生影响。竞态条件:可能发生在临界区内的特殊田间。多线程执行incr方法中i++关键代码时,产生了竞态条件。共享资源:如果一段代码是线程安全.原创 2020-05-27 02:28:35 · 295 阅读 · 0 评论 -
java内存模型
java的内存模型描述了java程序的可能行为。通过检查执行跟踪中的每个读操作,并根据某些规则检查该读操作观察到的写操作是否有效来工作。程序的所有执行的结果都可以通过内存模型来预测。具体的实现者任意实现,包括操作的重新排序和删除不必要的同步。内存模型决定了程序在每个点上可以读取到什么样的值。更多内容可直接参考java的官方文档https://docs.oracle.com/javase/specs/jls/se8/html/jls-17.html#jls-17.4Memory Mod原创 2020-05-27 00:38:51 · 182 阅读 · 0 评论 -
线程封闭(ThreadLocal,栈封闭即局部变量)
概念:数据封闭在各自的香橙中,不需要进行数据的同步,这种通过将数据封闭在各自的线程中,避免使用数据同步技术即线程封闭。线程封闭有两种方式:1、ThreadLocal线程级别的变量,每个线程都有自己独立的ThreadLocal的变量,在并发模式下是绝对线程安全的。ThreadLocal会在每个线程上创建一个副本,副本之间是彼此独立、互不影响的;可以使用ThreadLocal存放参数,方便在线程的多个方法中使用,用来代替方法传参。 public static ThreadLocal&原创 2020-05-24 23:59:04 · 219 阅读 · 0 评论 -
线程池
线程池的概念与数据库连接池的概念基本相似,线程池是为了控制线程的数量;线程是java中的一个对象,频繁的创建和销毁线程,都将消耗时间,降低程序的执行效率;过多的线程也将加速堆栈控件的消耗;更多的线程会导致操作系统频繁切换线程的上下文,拖慢系统的性能。线程池的内容:1、线程池管理器:用于创建并管理线程池;2、工作线程:线程池中的线程,循环执行线程池中的任务,没有任务则处于等待状态;3、任务接口:规定了任务的入口、任务结束后的操作、任务状态等;是线程池中任务必须实现的接口,供工作线程调用;原创 2020-05-24 23:37:28 · 331 阅读 · 0 评论 -
JAVA线程通信
JDK提供的线程协调的API:1、suspend、resume(已废弃)2、wait、notify3、park、unpark官方建议在循环中检查等待条件,因为处于等待状态的线程可能会因为错误或伪唤醒导致线程在没有满足结束条件的情况下退出。一、suspend、resume很容易死锁,所以被弃用;正常情况下:Thread consumerThread = new Thread(() -> { if (needWait == null) { // ...原创 2020-05-24 22:10:07 · 223 阅读 · 0 评论 -
Java的线程状态
JAVA的线程状态:1、New:尚未启动的线程的线程状态;2、Runnable:可运行或等待CPU调度;3、Blocked:线程阻塞等待监视器锁定或或处于synchronized同步代码块或方法中被阻塞;4、Waiting:等待状态;Object.wait、Thread.join、LockSupport.park5、Timed Waiting:具有等待时间的等待状态;Thread.sleep、Object.wait、Thread.join、LockSupport.parkNanos、Lo原创 2020-05-23 23:51:04 · 221 阅读 · 0 评论 -
JAVA运行原理
一、Class文件内容class文件包含java程序所执行的字节码,数据严格按照格式紧凑排列在class文件中的二进制流,中间无任何分隔符,文件以0xcafebabe(咖啡宝贝)这个特殊标志作为开头。文件内容包括:版本、访问标志、常量池、当前类、父类、接口、字段、方法和属性二、java运行时java文件(源代码) 经过编译器编译,生成 class文件(字节码),JVM(java虚拟机)加载字节码三、JVM运行时数据区共享部分:所有线程都能访问到的内存数据,随虚拟...原创 2020-05-23 23:38:37 · 192 阅读 · 0 评论 -
Redis命令
http://doc.redisfans.com/index.html转载 2020-04-14 15:06:46 · 141 阅读 · 0 评论 -
JPA添加唯一索引或唯一约束(Mysql测试通过 version 5.7)
------------------------------------------------------------------------------------------------网上提供的版本基本都是这个版本的居多,据网友测试说在oracle中测试是没问题的,在mysql中测试是失败的@Table(name = “表名”, uniqueConstraints = {@Uni...原创 2020-01-29 00:37:01 · 5644 阅读 · 0 评论 -
阿里巴巴Java代码规约
阿里巴巴Java代码规约插件安装https://www.jianshu.com/p/d1dda276c91c阿里Java代码规约插件有Eclipse插件和IDEA插件。Eclipse插件安装Eclipse版插件支持4.2(Juno,JDK1.8+)及以上版本,通过 Help-- Install New Software 然后输入https://p3c.alibaba.com/pl...转载 2019-07-11 22:03:56 · 1621 阅读 · 0 评论 -
Spring基础(3)——控制反转、IOC
Spring各对象以一种松耦合的方式,将各层的对象组织在一起,Action不需要关心Service层的具体实现,Service对象无需关心持久层的具体实现,各层对象的调用全面向接口。当系统重构时,代码的改写量将大大减少。上面所说的一起都得益于Spring的核心机制——依赖注入。通过依赖注入,将Bean与Bean之间以配置文件的形式组织在一起,而不是以硬编码的方式偶合在一起。Spring的核心是IO...原创 2018-06-10 23:44:39 · 180 阅读 · 0 评论 -
服务器读取不到POST的数据
前因:之前因为有个需求,将内容发送到服务器上,但是post、get的数据量似乎都不太够,所以查资料,说是可以通过修改tomcat的配置实现上传信息的大小不受限制 maxPostSize="0"在中,增加一个maxPostSize的属性,不过修改之后并不太好使。之后忘记改回去了,尴尬。导致的问题:post发送给服务器的数据,服务器读取不到,null;纠结了整整一天,才在这个时原创 2016-11-01 19:22:38 · 2405 阅读 · 0 评论 -
tomcat8虚拟文件路径
在tomcat的安装目录下面找到conf文件夹下面的server.xml 在节点下面添加如下代码: 这个配置的是虚拟路径,docBase表示你的真实文件路径,path表示虚拟路径。 比如1.jpg放到D:\uploadFile文件夹下面,在jsp页面上是这样写的:转载 2016-11-01 19:33:01 · 325 阅读 · 0 评论 -
java.sql.SQLException: No suitable driver found for jdbc:mysql
这两天在做项目的过程当中,遇见一个这样的问题,就是hibernate配置完成了之后,报 java.sql.SQLException: No suitable driver found for jdbc:mysql。。。。这样的一个错误。刚开始的时候使用的是jdk1.8 + strust2 + hibernate5 可是怎么修改都不对,用静态mian方法启动时没问题,但是换成web程序启动访问的原创 2016-12-09 02:41:08 · 31680 阅读 · 11 评论 -
tomcat 出错卡死
在window2003 系统下运行tomcat5.5 当运行时代码中有控制台输出的语句,如System.out.println 或 e.printStackTrace() 时,当前线程会卡住,而且控制台没有任何输出,只要在运行的服务器上敲下空格或回车,才回有输出,该线程才恢复运行。 原因: 1 在控制台左上角鼠标右键,选属性2 看图上的解释,去掉那个快速编辑转载 2017-10-30 17:55:22 · 380 阅读 · 0 评论 -
关于Date的一个问题
public static void testDate() {String payTime = "2017-10-26 00:12:49";String expTime = "25";int expDay = Integer.parseInt(expTime);Date datePay = Tools.stringToDate(payTime);Date dateExp =原创 2017-10-26 00:59:17 · 297 阅读 · 0 评论 -
Spring基础(4)——设值注入、构造注入
设值注入:也称属性注入,是指通过setter()方法传入被调用者的实例。这种注入方式简单、直观,在Spring依赖注入中也是最常用的。public interface Animal { public void eatFood();}public interface Action { public void eat();}public class Cat implement An...原创 2018-06-11 23:43:27 · 1924 阅读 · 0 评论 -
Spring基础(1)——Spring简介
很多东西可能用的比较老的,跟不上时代的发展和进步,但是基础都是想通相似的。但是,我想能作为教材进入大学课堂的知识,虽然可能会有写偏差,应当不是太严重把。Spring致力于J2EE应用各层的解决方案,而不是仅仅专注于某一层,Spring是企业应用开发的一站式选择。Spring贯穿表现层、业务层和持久层。但是spring并不是要取代已有的框架,而是高度开放性的与他们无缝整合。Spring只不过是一个框...原创 2018-06-05 22:47:11 · 196 阅读 · 0 评论 -
Spring基础(5)——装配Bean之Bean容器1——Bean工厂
Spring提供了两种不同的Bean容器,第一种是Bean工厂,由beanFactory接口定义,是最简单的容器,提供基础的依赖注入支持;第二种是应用上下文,由ApplicationContext接口定义,建立在bean工厂之上,提供系统框架服务。所谓装配Bean,是指告诉Spring容器需要哪些Bean以及容器如何使用以来注入将他们组合在一起。一、Bean容器SpringIOC设计的核心是Bea...原创 2018-06-13 00:41:13 · 634 阅读 · 0 评论 -
单态模式、工厂模式
Java模式包括很多种,例如构造模式、责任型模式等很多种模式。最简单的两种模式:单态模式和工厂模式单态模式:单态模式下,对所有同一类型的Bean的请求,都将返回同一个共享实例。因此,单态模式可以大大降低Java对象创建和销毁时的系统开销。示例代码:public clasa SingletonTest { int value; private static SingletonTest...原创 2018-06-07 00:54:28 · 394 阅读 · 0 评论 -
Spring基础(2)——单例模式、工厂模式
就在几分钟之前,还在挖单例模式和工厂模式,发现越挖内容越多,越挖范围越广,感觉再挖我就爬不出来了,以后在慢慢挖吧,很多原理性的东西可能不是每次都能遇得到,但是熟悉理论知识以后,在后面的工作和学习中,遇到类似的问题,就算不能马上反应出问题出在哪,也能慢慢分析出问题原因并且知道搜索哪些知识可以解决问题。接着补Spring的相关知识。之前在挖的单例模式和工厂模式现在就能用上了。Spring使用配置文件管...原创 2018-06-07 01:26:23 · 495 阅读 · 0 评论 -
enum 类型
转自:http://blog.csdn.net/liranke/article/details/22751453作者:langya2007 对于:enum Color { RED,BLUE,BLACK YELLOW,GREEN}; (1) ordinal()方法: 返回枚举值在枚举类种的顺序。这个顺序根据枚举值声明的顺序而转载 2015-12-30 17:32:52 · 252 阅读 · 0 评论