JAVA基础总结
文章平均质量分 57
不做只懂理论的瘸子
至今没搞明白
这个作者很懒,什么都没留下…
展开
-
Java int类型数值比较总结
Java数据比较问题原创 2023-03-07 19:54:21 · 5673 阅读 · 0 评论 -
Java开发中PO\DO\DAO\VO\DTO\BO的使用场景
项目过程中对象类使用的规范原创 2023-03-07 13:33:12 · 207 阅读 · 0 评论 -
全局变量、静态变量、局部变量线程安全问题
1、静态变量静态变量即静态成员变量。只要有修改变量值的操作,无论是在单例或者非单例都是线程不安全的;而如果线程只是读取变量的值,而不会改变变量的值,这种情况下则是线程是安全的。产生线程安全问题的原因:静态变量即类变量,只初始化一次,位于方法区,为所有对象共享,共享一份内存,一旦静态变量被修改,其他对象均对修改可见,故线程非安全。静态变量多线程操作示例:根据上图代码可知,当线程1执行了number = 1; number = 2; 后,线程2获得执行权,number = 1;然后当线程1获得执行权执原创 2021-11-12 18:09:24 · 6190 阅读 · 3 评论 -
线程池和数据库连接池理解
当客户端请求的数据量比较大的时候,使用线程池可以节约大量的系统资源,使得更多的CPU时间和内存可以高效地利用起来。而数据库连接池的使用则将大大提高程序运行效率,同时,我们可以通过其自身的管理机制来监视数据库连接的数量、使用情况等。本文我们主要就介绍一下线程池和数据库连接池的原理,接下来我们一起来了解一下这一部分内容。线程池的原理:其实线程池的原理很简单,类似于操作系统中的缓冲区的概念,它的流程如下:先启动若干数量的线程,并让这些线程都处于睡眠状态,当客户端有一个新请求时,就会唤醒线程池中的某一个睡眠线程原创 2021-08-18 16:02:47 · 953 阅读 · 0 评论 -
List、Set、Map、hashMap、hashTable、Arraylist、linkedList的区别
1、List,Set,Map存取元素各有什么特点?1.存放(1)List存放元素是有序,可重复(2)Set存放元素无序,不可重复(3)Map元素键值对形式存放,键无序不可重复,值可重复2.取出(1)List取出元素for循环,foreach循环,Iterator迭代器迭代(2)Set取出元素foreach循环,Iterator迭代器迭代(3)Map取出元素需转换为Set,然后进行Iterator迭代器迭代,或转换为Entry对象进行Iterator迭代器迭代2、HashMap、HashTa原创 2020-07-27 17:47:48 · 106 阅读 · 0 评论 -
sql中where、having、group by、order by执行和书写顺序
书写和执行顺序:where、group by、having、order by当一个查询语句同时出现了where,group by,having,order by的时候,执行顺序和编写顺序是:1.执行where xx对全表数据做筛选,返回第1个结果集。2.针对第1个结果集使用group by分组,返回第2个结果集。3.针对第2个结集执行having xx进行筛选,返回第3个结果集。4.针对第3个结果集中的每1组数据执行select xx,有几组就执行几次,返回第4个结果集。5.针对第4个结果集排序原创 2021-08-10 13:48:21 · 1534 阅读 · 0 评论 -
HTTP:压缩传输、分块传输
1、本文重点什么是压缩传输?如何开启Tomcat、Weblogic的压缩传输功能什么是分块传输?2、压缩传输压缩目的:减小响应尺寸、节省带宽、提高速度2.1 HTTP协议如何发挥作用?客户端与服务端之间通过Accept-Encoding与Content-Encoding合作完成Accept-Encoding:请求头部;用于告知服务器,浏览器支持的压缩方式,供服务器选择;例:Accept-Encoding:gzip, deflate, brContent-Encoding:响应头部;原创 2020-12-24 14:57:26 · 1596 阅读 · 0 评论 -
Spring事务传播行为和隔离级别分析
本文将按照声明式事务的五个特性进行介绍:事务传播机制事务隔离机制只读事务超时回滚规则Spring事务传播机制事务的特性原子性(Atomicity):事务是一个原子操作,由一系列动作组成。事务的原子性确保动作要么全部完成,要么完全不起作用。一致性(Consistency):一旦事务完成(不管成功还是失败),系统必须确保它所建模的业务处于一致的状态,而不会是部分完成部分失败。在现实中的数据不应该被破坏。隔离性(Isolation):可能有许多事务会同时处理相同的数据,因此每个事务都应该与其他原创 2020-12-10 23:28:22 · 211 阅读 · 0 评论 -
Quartz—有状态的job和无状态的job
如果使用了Quartz,当然在一个系统中绝不仅仅是一个job那么简单,如果同一个job同一时刻运行,可能会造成重复入库的情况。所以我们希望多线程时,能够控制同一时刻相同job只能有一个正在执行。 有时候job执行频率很小,然后在这么短的时间内该job还没结束,结果另一线程再次启用同一job下的方法,这样可能会造成重复的情况,希望在前一个此job结束后再进行下一次调用。 其实据说很简单,就是在detail的参数里加上一句话就行了,把这个job设置成有状态的job。记得有一个问题,原创 2020-12-08 23:09:31 · 642 阅读 · 0 评论 -
Quartz线程并行串行处理
Quartz定时任务默认都是并发执行的,不会等待上一次任务执行完毕,只要间隔时间到就会执行, 如果定时任执行太长,会长时间占用资源,导致其它任务堵塞。并行和串行含义Quartz定时任务的执行策略有并行(无状态)和串行(有状态)之分。在实际应用中需要实现Job 接口以定义自己的任务。实现 Job 接口的任务缺省为无状态的。Quartz 中还有另外一个接口 StatefulJob。实现 StatefulJob 接口的任务为有状态的。无状态任务一般指可以并发的任务,即多个任务同时运行,任务之间是独立的,不原创 2020-12-08 23:07:52 · 1622 阅读 · 0 评论 -
Quartz定时任务调度器堵塞原理和解决
Quartz 调度器以多线程的方式执行调度任务JobDetail,缺省线程池大小为10,也就是说若调度器中已有10个Job在工作(线程没有结束),那么即使有JobDetail到了被触发的时间,新的JobDetail不会被执行,也就是说阻塞的条件是,调度器中正在运行的JobDetail数量达到了设定值10。举一个具体的例子:a. 单一Job配置:JobA 触发时间为 每秒运行一次,每个Job执行时间为30秒运行:1、 10个JobA将连续启动2、 到第10个JobA启动后,线程池中所有线程被耗尽原创 2020-12-08 22:55:58 · 8143 阅读 · 0 评论 -
集合的特点和区别(List、Set、MaphashMap、hashTable、Arraylist、linkedList)
1、List,Set,Map存取元素各有什么特点?1.存放(1)List存放元素是有序,可重复(2)Set存放元素无序,不可重复(3)Map元素键值对形式存放,键无序不可重复,值可重复2.取出(1)List取出元素for循环,foreach循环,Iterator迭代器迭代(2)Set取出元素foreach循环,Iterator迭代器迭代(3)Map取出元素需转换为Set,然后进行Iterator迭代器迭代,或转换为Entry对象进行Iterator迭代器迭代2、HashMap、HashT.原创 2020-11-08 19:55:57 · 314 阅读 · 0 评论 -
正确理解RestFul 接口
一、RESTREST,即Representational State Transfer的缩写,翻译过来就是"表现层状态转化"。REST只是一种软件架构风格。注意了,它并不是一种具体的技术。而更像是一种约束与规范性的东西,它包含了很多原则与限制。而如果一个架构符合REST的原则,就可以称它为RESTful架构。1.1 资源在REST中最重要的一个概念就是资源。在面向对象的世界里,我们提倡万物皆对象,而在REST的世界里则是万物皆资源。所谓"资源",就是网络上的一个实体,或者说是网络上的一个具体信息。它可原创 2020-11-08 19:53:10 · 3366 阅读 · 0 评论 -
过滤器和拦截器的区别
一、拦截器和过滤器的区别1、拦截器(Interceptor)只对action请求起作用 即对外访问路径而过滤器(Filter)则可以对几乎所有的请求都能起作用 包括css js等资源文件2、拦截器(Interceptor)是在Servlet和Controller控制器之间执行而过滤器(Filter)是在请求进入Tomcat容器之后 但是在请求进入Servlet之前执行在请求结束返回时也是一样 是在Servlet处理完之后返回给前端之间执行二、拦截器和过滤器的代码实现1、拦截器首先需要一个拦原创 2020-11-08 19:33:47 · 21925 阅读 · 1 评论 -
文件流-从url中获取资源文件下载到本地
public static void main(String[] args) { String url = "http地址"; byte[] btImg = getImageFromNetByUrl(url); if (null != btImg && btImg.length > 0) { String fileName = "文件名"; System.out.println("读取到:" + btImg.length ...原创 2020-11-08 18:24:02 · 897 阅读 · 0 评论 -
HTTP常见错误原因分析
造成HTTP-500错误,可能存在的原因之个人实践总结1、运行的用户数过多,对服务器造成的压力过大,服务器无法响应,则报HTTP500错误。减小用户数或者场景持续时间,问题得到解决。2、该做关联的地方没有去做关联,则报HTTP500错误。进行手工或者自动关联,问题得到解决。3、录制时请求的页面、图片等,在回放的时候服务器找不到,则报HTTP500错误,若该页面无关紧要,则可以在脚本中注释掉,问题将会得到解决。例如:有验证码的情况下,尽管测试时已经屏蔽了,但是录制的时候提交了请求,但回放的时候不原创 2020-11-02 17:54:39 · 877 阅读 · 0 评论 -
Java中异常处理的几种方法
Java中所有异常的父类是Throwable类,在Throwable类下有两大子类:一个是Error类,指系统错误异常,例如:VirtualMachineError 虚拟机错误,ThreadDeath线程死锁。一般如果是Error类的异常的话,就是程序的硬伤,就好比是工厂里断水断电,机器损坏了。另一个是Exception类,指编码、环境、用户操作输入等异常,这个是比较常见的异常类,Exception类下面又有两个子类,RuntimeException非检查异常和检查异常,非检查又称为运行时异常。.原创 2020-10-31 22:18:10 · 5393 阅读 · 0 评论 -
Spring实现如何在工具类中调用Service方法
1、首先在spring-mvc.xml中增加注解 <!-- 扫描util --><context:component-scan base-package="com.essbase.util.springToutil"> </context:component-scan>2、引入工具类SpringContextUtil.javapackage com.essbase.util.springToutil;import org.springframewor原创 2020-10-31 21:40:34 · 1438 阅读 · 0 评论