- 博客(47)
- 资源 (2)
- 问答 (2)
- 收藏
- 关注
原创 java高并发总结3--java线程的生命周期
我们都知道每一个线程都有自己的局部变量、程序计数器,以及生命周期等,这边博客主要介绍线程的生命周期。在介绍线程的生命周期之前,先思考一个问题:执行了Thread的start方法就代表线程已经开始执行了吗?通过上图的展示可知,线程的生命周期大体可以分为如下5个主要阶段:newrunnablerunningblockedterminal1、线程的new状态当我们用new关键字创...
2019-01-29 20:36:55 135
原创 idea使用1.8版本jdk但是使用lambda表达式报错
报错信息:解决办法,file->project structure->modules–> language level 选择lambda表达式即可。
2019-01-29 13:45:58 4587
原创 java高并发总结2--使用Jconsole观察线程
Jconsole,Java Monitoring and Management Console。Jconsole是JDK自带的监控工具,在JDK/bin目录下可以找到。它用于连接正在运行的本地或者远程的JVM,对运行在java应用程序的资源消耗和性能进行监控,并画出大量的图表,提供强大的可视化界面。而且本身占用的服务器内存很小,甚至可以说几乎不消耗。Jconsole的路径如下:双击即可打开...
2019-01-29 13:20:32 438
原创 java高并发总结1--初识java线程
在计算机的世界里,当我们探讨并行的时候,实际上是指,一系列的任务在计算机中同时运行,比如在浏览器网页的时候还能打开音乐播放器,在撰写邮件的时候,收件箱还能接受新的邮件。在单cpu的计算机中,其实并没有真正的并行,他只不过是CPU时间中快速轮转调度带给你的错觉,而这种错觉让你产生了他们真的在同一时刻同时运行。当然如果市多核CPU,那么并行运行还是真实存在的。线程现在几乎所有的操作系统都支持多任务...
2019-01-29 12:49:32 205
原创 Java总结坚持一百天3--java错误处理(异常)
1、什么是异常?2、异常分类3、声明受检查异常4、如何抛出异常5、创建异常类-------------------------------------------什么是异常?-----------------------------------------------------------异常是java中的一种错误处理机制。在理想的状态下,用户输入数据格式永远是正确的,选择打开的文...
2019-01-24 12:02:51 284
转载 Java NIO:IO与NIO的区别
转载地址一、概念 NIO即New IO,这个库是在JDK1.4中才引入的。NIO和IO有相同的作用和目的,但实现方式不同,NIO主要用到的是块,所以NIO的效率要比IO高很多。在Java API中提供了两套NIO,一套是针对标准输入输出NIO,另一套就是网络编程NIO。二、NIO和IO的主要区别下表总结了Java IO和NIO之间的主要区别:IONIO面向流面向缓...
2019-01-22 11:39:11 248
转载 分布式锁
Java 提供了两种内置的锁的实现,一种是由 JVM 实现的 synchronized 和 JDK 提供的 Lock,当你的应用是单机或者说单进程应用时,可以使用 synchronized 或 Lock 来实现锁。当应用涉及到多机、多进程共同完成时,那么这时候就需要一个全局锁来实现多个进程之间的同步。使用场景例如一个应用有手机 APP 端和 Web 端,如果在两个客户端同时进行一项操作时,...
2019-01-22 09:46:15 196 1
转载 mysql调优2
转自MySQL 最全优化指南当MySQL单表记录数过大时,增删改查性能都会急剧下降,所以我们本文会提供一些优化参考,大家可以参考以下步骤来优化:一、单表优化除非单表数据未来会一直不断上涨,否则不要一开始就考虑拆分,拆分会带来逻辑、部署、运维的各种复杂度。一般以整型值为主的表在千万级以下,字符串为主的表在五百万以下是没有太大问题的,而事实上很多时候MySQL单表的性能依然有不少优化空间,甚至能...
2019-01-21 22:51:47 122
原创 Java总结坚持一百天2--JDK动态代理和CGLIB动态代理
1、什么是动态代理?2、代理模式3、JDK动态代理模式4、CGLIB动态代理模式5、动态代理实现拦截器----------------------------------------------什么是动态代理?-------------------------------------------------------------动态代理技术是整个java技术中最重要的一个技术,它是学...
2019-01-21 22:11:29 181
原创 Java总结坚持一百天1--java反射简单总结
1、反射是什么?2、反射对象3、反射方法4、反射在平时的应用-----------------------------------------------反射是什么?----------------------------------------------------1、反射是什么?Java反射机制是一个非常强大的功能,在很多大型项目比如Spring, Mybatis中都可以看见反射...
2019-01-19 20:12:07 230
转载 java序列化与反序列化
把对象转换为字节序列的过程称为对象的序列化。把字节序列恢复为对象的过程称为对象的反序列化。 对象的序列化主要有两种用途: 1) 把对象的字节序列永久地保存到硬盘上,通常存放在一个文件中; 2) 在网络上传送对象的字节序列。在很多应用中,需要对某些对象进行序列化,让它们离开内存空间,入住物理硬盘,以便长期保存。比如最常见的是Web服务器中的Session对象,当有 10万用户并发访问...
2019-01-17 21:37:10 124
原创 JAVA内存模型
堆 存放 对象和数组, 是GC主要操作的区域 由于堆是动态分配内存. 堆存取效率低于栈.虚拟机栈 存放基本数据类型 和对象的引用.线程. 栈中数据可以共享.方法区 存放常量、静态变量 ,编译后的代码本地方法栈 虚拟机使用的本地服务...
2019-01-17 20:59:05 107
原创 守护线程和非守护线程
Java的线程分为两种:User Thread(用户线程)、DaemonThread(守护线程)。只要当前JVM实例中尚存任何一个非守护线程没有结束,守护线程就全部工作;只有当最后一个非守护线程结束是,守护线程随着JVM一同结束工作,Daemon作用是为其他线程提供便利服务,守护线程最典型的应用就是GC(垃圾回收器),他就是一个很称职的守护者。User和Daemon两者几乎没有区别,唯一的不同...
2019-01-17 20:30:15 159
转载 JAVA多线程之volatile 与 synchronized 的比较
①volatile轻量级,只能修饰变量。synchronized重量级,还可修饰方法②volatile只能保证数据的可见性,不能用来同步,因为多个线程并发访问volatile修饰的变量不会阻塞。synchronized不仅保证可见性,而且还保证原子性,因为,只有获得了锁的线程才能进入临界区,从而保证临界区中的所有语句都全部执行。多个线程争抢synchronized锁对象时,会出现阻塞。参照地...
2019-01-17 11:00:08 119
原创 ConcurrentHashMap和Hashtable的区别
Hashtable和ConcurrentHashMap有什么分别呢?它们都可以用于多线程的环境,但是当Hashtable的大小增加到一定的时候,性能会急剧下降,因为迭代时需要被锁定很长的时间。因为ConcurrentHashMap引入了分割(segmentation),不论它变得多么大,仅仅需要锁定map的某个部分,而其它的线程不需要等到迭代完成才能访问map。简而言之,在迭代的过程中,Con...
2019-01-17 10:54:04 1152
转载 mysql调优1
为查询缓存优化你的查询EXPLAIN 你的 SELECT 查询当只要一行数据时使用 LIMIT 1为搜索字段建索引在Join表的时候使用相当类型的例,并将其索引千万不要 ORDER BY RAND()避免 SELECT *永远为每张表设置一个ID使用 ENUM 而不是 VARCHAR从 PROCEDURE ANALYSE() 取得建议尽可能的使用 NOT NULLPrepa...
2019-01-15 09:26:38 127
原创 新生代GC,老年代GC
新生代的GC:新生代通常存活时间较短,因此基于复制算法来进行回收,所谓复制算法就是扫描出存活的对象,并复制到一块新的完全未使用的空间中,对应于新生代,就是在Eden和其中一个Survivor,复制到另一个之间Survivor空间中,然后清理掉原来就是在Eden和其中一个Survivor中的对象。新生代采用空闲指针的方式来控制GC触发,指针保持最后一个分配的对象在新生代区间的位置,当有新的对象要分...
2019-01-15 09:07:09 665
原创 list不安全,hsahmap不安全
Doug Lea的util.concurrent包除了包含许多其他有用的并发构造块之外,还包含了一些主要集合类型List和Map的高性能的、线程安全的实现。Brian Goetz向您展示了用ConcurrentHashMap替换Hashtable或synchronizedMap,将有多少并发程序获益。在Java类库中出现的第一个关联的集合类是Hashtable,它是JDK 1.0(比较老) ...
2019-01-15 08:56:07 178
原创 java ArrayList和LinkedList区别
ArrayList和LinkedList的大致区别如下:1.ArrayList是实现了基于动态数组的数据结构,LinkedList基于链表的数据结构。2.对于随机访问get和set,ArrayList觉得优于LinkedList,因为LinkedList要移动指针。3.对于新增和删除操作add和remove,LinedList比较占优势,因为ArrayList要移动数据。参照地址...
2019-01-14 21:38:21 281
原创 mysql 事物的隔离级别
事物的隔离级别隔离级别设定connection.setTransactionIsolation(Connection.TRANSACTION_READ_COMMITTED);事务有四个属性,称为ACID属性:1、原子性(Atomicity):事务是一个原子单位,要么全部执行,要么全部不执行。2、一致性(Consistent):事务的开始和结束,数据都必须保持一致状态。3、隔离性(is...
2019-01-14 21:28:35 307
原创 mysql一共有多少种存储引擎
执行如下指令查看所有mysql所有的存储引擎SHOW ENGINESInnoDB存储引擎InnoDB是事务型数据库的首选引擎,支持事务安全表(ACID),支持行锁定和外键,上图也看到了,InnoDB是默认的MySQL引擎。InnoDB主要特性有:1、InnoDB给MySQL提供了具有提交、回滚和崩溃恢复能力的事物安全(ACID兼容)存储引擎。InnoDB锁定在行级并且也在SELECT语...
2019-01-14 21:05:50 3071
原创 mysql锁
1表级锁定,2行级锁定,3页级锁定。数据库锁定机制简单来说,就是数据库为了保证数据的一致性,而使各种共享资源在被并发访问变得有序所设计的一种规则。对于任何一种数据库来说都需要有相应的锁定机制,所以MySQL自然也不能例外。MySQL数据库由于其自身架构的特点,存在多种数据存储引擎,每种存储引擎所针对的应用场景特点都不太一样,为了满足各自特定应用场景的需求,每种存储引擎的锁定机制都是为各自所面...
2019-01-14 20:42:38 88
原创 eclipse lombok不生效解决办法
找到lombokC:\Users\jackray\.m2\repository\org\projectlombok\lombok\1.18.4右击–>Java™ platform SE binary
2019-01-13 13:29:50 4222 1
原创 关于排序算法
具体情况具体分析。。。数据基本有序了用冒泡最快了归并排序占用空间适用于对空间要求不高的场合堆排序情况也跟归并差不多但也与堆的实现有关系快速排序一般来说很好,适用于数据量大的情况数据量少的话还是别用了有时反而不如O(n^2)的排序方法参照地址...
2019-01-12 00:28:43 132
原创 spring中scope作用域设置sigleton还是prototype
1.对于有实例变量的类,要设置成prototype;没有实例变量的类,就用默认的singleton2.Action一般我们都会设置成prototype,而Service只用singleton就可以。参照地址...
2019-01-11 12:03:17 462
转载 spring中scope配置
Scope,也称作用域,在 Spring IoC 容器是指其创建的 Bean 对象相对于其他 Bean 对象的请求可见范围。在 Spring IoC 容器中具有以下几种作用域:基本作用域(singleton、prototype),Web 作用域(reqeust、session、globalsession),自定义作用域。1、Spring 的作用域在装配 Bean 时就必须在配置文件中指明,配置方...
2019-01-11 11:47:29 721
原创 mybatis防止sql注入
SQL注入是一种代码注入技术,用于攻击数据驱动的应用,恶意的SQL语句被插入到执行的实体字段中(例如,为了转储数据库内容给攻击者)。[摘自] SQL injection - Wikipedia所谓SQL注入,就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。具体来说,它是利用现有应用程序,将(恶意的)SQL命令注入到后台数据库引擎执...
2019-01-11 11:20:00 954
SecureCRT v8.x 注册机
2019-05-06
MyCommentGenerator
2018-11-23
java知识点 与dom4j 相关
2016-11-22
TA创建的收藏夹 TA关注的收藏夹
TA关注的人