- 博客(27)
- 资源 (2)
- 收藏
- 关注
原创 各种锁的对比总结
多线程并发编程中最常用的就是synchronized和volatile两个关键字。volatile通常被描述成一个轻量级锁。 用于声明需要在多线程环境中共享的对象。 只能在类实例对象上声明。 功能: 保证当前对象对其它线程可见 禁止代码的重排序重排序 :代码中上下两段代码不存在依赖关系时,jvm会对代码进行优化排序,排序后的顺序不一定是代码的顺序但是...
2019-11-27 11:00:11
632
原创 JSONObject.parseObject问题记录
JSONObject.parseObject问题记录Q1:在用fastjson的parseObject 做数据类型转化时会出现问题:Map<String, String> map = JSONObject.parseObject(data, Map.class);如果data中某个字段是数值类型编译上是没有问题的。但在显式调用的时候会出现classcastexception...
2019-10-17 11:16:19
4807
原创 spring引入dubbo后启动tomcat报错
场景:spring项目引入dubbo之后,用mvn clean tomcat7:run 的方式启动报错 SpringServletContainerInitializer cannot be cast to javax.servlet.ServletContainerInitializer解决方案:stackoverflow上的解决方案是: 将&lt;dependency&...
2018-09-05 14:22:12
707
原创 idea 快捷键设置
windows切换到mac系统,keymap风格设置成eclipse 复制当前行 File-&amp;amp;amp;gt;settings-&amp;amp;amp;gt;keymap-&amp;amp;amp;gt;搜索duplicate -&amp;amp;amp;gt;双击Duplicate Entire Lines 设置
2018-08-24 00:52:25
215
原创 Effective Java
参考 effective java 一书 创建和销毁对象 1) 用静态工厂方法代替构造器 优势: 静态工厂方法有名称 不必在每次调用他们的时候都创建一个新对象 可以返回原返回类型的任何子类型的对象 ...
2018-08-07 00:41:23
189
原创 Netty实战
1.什么是netty? netty是一个异步的事件驱动的网络应用程序框架,支持了快速的开发可维护的高性能的面向协议的服务器和客户端2.为什么netty这么快? I/O类型有BIO,NIO等 bio 阻塞io,请求线程和业务工作线程是同一个,也就是程序中接受请求的线程和处理业务逻辑的线程是同一个。 nio 非阻塞io,通过selector选择器将请求线程跟工作线程分离, 用事件通...
2018-06-10 14:18:21
405
原创 java虚拟机 之 类加载器
参考 &lt;&lt;深入理解java虚拟机 JVM高级特性与最佳实践&gt;&gt;什么是类加载器? 是一组代码,通过类的全限定名来获取描述此类的二进制字节流信息。让应用程序来决定如何去获取所需要的类。 应用场景:类层次划分,OSGI, 热部署, 代码加密 用于类加载流程中的加载阶段。...
2018-06-09 09:59:59
157
原创 并发编程 基础篇
参考 : <<Java 并发编程的艺术>> -方腾飞 魏鹏 程晓明无论是单机还是分布式环境,多线程无处不在, 如果用人来比作线程的话,一个公司不可能只有一个人,一个团队不可能只有一个人 1.那么多线程一定是快的吗? 为什么会有这个疑问? 难道多个人一起来做某件事情效率还比不上一个人吗? 我们来看 cpu对于多线程的处理机制:cpu通过时间分片法来循环执行任...
2018-06-08 00:52:48
236
原创 java collection 集合之list
1.为什么说ArrayList是有序的?ArrayList的底层是数组Object[]来实现的。数组本身是有序的。
2018-05-11 01:05:45
214
原创 Java内存模型与线程
服务性能好坏的高低指标: TPS Transactions Per Seconds每秒处理事务数 代表一秒内服务端平均能相应的请求总数物理计算机的并发问题 复杂性来源是 绝大部分的运算任务都不可能只靠处理器计算就能完成,处理器至少要与内存交互,如读取运算数据,存储运算结果等,这个io是很难消除的。 基于内存交互的复杂性,所以引入新的基于 高速缓存的存储交互 ...
2018-05-08 15:52:01
196
原创 dubbo学习
参考dubbo官方文档 [http://dubbo.apache.org/books/dubbo-user-book/configuration[官方文档]1.本地dubbo环境的搭建环境 java1.8 maven idea zookeeper dubbodubbo的搭建不需要依赖spring框架, maven的依赖中加入 dub...
2018-04-29 19:29:23
212
原创 fastjson 转 实体类出错
早上莫名出现一个很奇怪的问题 Caused by: java.lang.VerifyError: (class: com/alibaba/fastjson/parser/deserializer/FastjsonASMDeserializer_37_PricingPO, method: deserialze signature: (Lcom/alibaba/fastjson/parser/Def...
2018-04-28 10:35:33
1798
原创 《分布式服务架构 原理设计与实战》 第1章 分布式微服务架构设计原理
互联网产品的要求:高可用性,高性能,可伸缩,可扩展和安全性的非功能质量 相对于传统的企业级技术来说,面向的人群不一样,结构也就不一样。 如果互联网产品也像企业软件那样,就好比整个中国的人都到北京的一个办事处来办事,这个办事处可能无比庞大,但是却不能很好的服务到各个地方的人。 所以互联网技术以拆分为原则来满足服务于海量用户的需求。产品的演化过程传统单体架构 lamp 特点:单体...
2018-04-22 21:51:14
959
原创 《JAVA并发编程实践》第六章任务执行第七章取消与关闭
任务任务执行: 任务通常是一些抽象而离散的工作单元,通过把应用程序的工作分解到多个任务中,可以简化程序的组织结构,提供一种自然的事务边界来优化错误恢复过程,以及提供一个自然的并行结构来提升并发性。如何设计: 找出清晰的任务边界,各个任务之间相互独立,不依赖于其他任务的状态,结果或边界效应。自然的任务边界选择方式: 以独立的客户请求为边界。项目中每次客户发起的一...
2018-04-09 00:53:47
184
原创 《JAVA并发编程实践》第五章基础构建模块
1.什么是同步容器类?同步容器有 vector,hashtable等,他们的实现方式是:封装类的状态,对每个公有方法都使用同步,使得每次只有一个线程能访问容器的状态。对于同步容器每个方法来说,它是线程安全的但是在客户端代码中,一些复合操作仍然会出现并发性问题。常见的复合操作: 迭代 跳转 条件运算 若没有则添加解决方法: 在客户端对容器加锁。带来的...
2018-04-08 00:01:02
171
原创 《JAVA并发编程实践》第四章对象的组合
1.如何写出一个线程安全的类?基本要素: 找出构成对象状态的所有变量 找出约束状态变量的不变性条件(取值范围 前验条件或者后验条件) 建立对象状态的并发管理策略实际中的代码订单类包含自身的状态和商品的引用public class Order(){ private Integer status; private Product product;...
2018-04-05 11:45:46
157
原创 《JAVA并发编程实践》第三章对象的共享
1 怎么理解发布和逸出? 转自别人的回答讲的很详细 点击这里 还有这里2.如何构造一个安全的对象?不可变的对象一定是线程安全的 在多线程访问这个不可变的对象时,对象的实例域都是固定不变的,也就不存在多线程环境写操作带来的失效数据的问题。什么样的对象才是不可变的? 对象创建后其状态就不能修改 对象所有的域都是final类型 ...
2018-04-04 00:50:53
170
原创 《JAVA并发编程实践》第二章 线程安全性
1.多线程环境为什么会出现问题? 由于竞态条件的存在。 竞态条件:基于一种可能失效的观察结果来做出判断或执行某个计算 竞态条件分两种: - **先检查后执行** - **读取-修改-写入** 场景: 单例模式-懒加载 计...
2018-04-02 01:34:20
196
转载 java 上传图片图片变红
java 上传图片的时候出现图片变红的情况原因:图片包含了一个Alpha(透明)通道,一共四个通道,jpg不支持Alpha通道,所以导致了这个现象解决代码: private static final int[] RGB_MASKS = {0xFF0000, 0xFF00, 0xFF}; private static final ColorModel RGB_OP
2015-11-25 17:28:41
1519
原创 本地同时运行两个项目 session失效
本地同时运行前后台两个项目,前台登陆使用cookie,后台登陆使用session, 同时运行的情况下,前台页面的每次操作,后台都需重新登录。原因: session信息是保存在服务器端,但发起请求时会在本地创建一个sessionid 的cookie信息, 当前端进行操作时,会修改掉之前创建的sessionid。所以后台项目根据新的sessionid是获取不到登录信息,这就需要重新登录了。
2015-11-25 15:37:49
637
原创 spring mvc freemaker form表单提交
spring mvc freemaker form表单提交时出现如下问题这是由于form表单中绑定的数据类型跟pojo类型不一致导致。
2015-09-23 15:25:34
1682
转载 AJAX提交与FORM提交的区别
Ajax提交是通过js来提交请求,请求与响应均由js引擎来处理,页面不会刷新,用户感觉不到实际上浏览器发出了请求。比如说我们希望网页总是显示最新的新闻,而又不想老是去点刷新按钮,我们就可以用Ajax机制来实现。网上的客服软件也是ajax请求的一个比较好的案例。传统的请求页面将实现刷新,因此局限性很大。1.为什么用AJAX?使用AJAX,用户对Web的体验会更“敏捷”:数据提交页面不
2015-08-27 10:49:21
517
转载 window下mysql配置MASTER/SLAVE模式
环境配置Mysql的MasterSlave至少需要两台机器。我这里使用三台虚拟机进行测试。三台机器配置完全一样,MySQL安装的路径也是一样:第一台:10.1.5.181; Windows 2008 DataCenter + MySQL Community Server 5.6.10.1第二台:10.1.5.182; Windows 2008 DataCenter + MySQ
2015-08-14 10:28:56
809
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人