- 博客(16)
- 收藏
- 关注
原创 Java面试题
注:带(可选)的需要根据应聘人情况酌情考察。数据结构map的底层存储结构- 数组、hash冲突后追加链表,链表太长了转红黑树ConcurrentHashMap线程安全实现机制- 以前是分段锁(减少锁冲突)- 现在是CAS实现多线程jdk中乐观锁有哪些实现线程池JDK语法你怎么理解函数式接口?Function, Supplier,Consumer 如何使用?JVM了解哪些垃圾回收算法,JVM的垃圾回收机制什么是堆外内存(Direct Memory)设计模式
2022-01-28 17:08:31
1448
原创 GenericObjectPool连接池
最近项目中使用Spring data redis + lettuce管理redis连接,其通过GenericObjectPool管理连接池,具体lettuce怎么用的连接池暂不考虑,仅关注池对象(连接)是如何管理的
2022-01-28 11:10:36
1953
原创 Guava Cache 如何防止缓存击穿
GuavaCache基本用法如果我们需要对从db获取的数据增加本地缓存,缓存10s过期,用guava cache很简单:初始化一个Cache对象,定义load方法,或者在获取值的时候传一个load方法即可// 定义cacheCache<String, Object> cache = CacheBuilder.newBuilder().maximumSize(100).expireAfterWrite(10L, TimeUnit.SECONDS).build();// 获取,如果没取到则
2021-10-12 14:20:27
1061
原创 Zookeeper Curator实现订阅通知
Curator简介Curator是zookeeper的一个开源工具包,屏蔽调很多底层代码细节,简单的说就像Guava跟jdk的关系一样。通过zk实现一个通知发布机制目标功能:在分布式系统中,某个服务改变了一个状态,需要通知其他所有的服务进行一个刷新操作。比如管理端更新了某个资源,所有使用了该资源的服务,都需要刷新一下缓存。分析步骤:利用zk的节点状态变更监听机制实现:将同一类的资源注册到同一个zk的path下面,需要刷新的服务监听这个path。从代码实现上考虑大概这几个事情1.定义一个ZkMa
2021-10-11 17:37:28
793
2
原创 Spring Gateway 使用小记
Predicate 和 Filter简单的说:predicate用于对请求进行判断(断言),Filter用于对请求进行处理。对于一般的转发请求操作,用Spring Gateway自带的 Predicate 和 Filter配合使用基本上就足够了。可以参考Spring gateway 官方文档比如,假如我需要通过path和header做转发当请求 http://${gateway-url}/some-api,我们希望将它转发到服务some-api上。可以直接这么配置: # 满足Path以s
2021-10-11 14:35:13
747
原创 javaMail
javaMail发送邮件简单快捷,网上实例也多。marksun有一套邮件发送的api,不过没有整合到jdk中,需要另行下载jar包: mail.jar activation.jarapi详细介绍:http://www.jspcn.net/htmlnews/1150019680500144.html以下短短几行代码实现发送文本内容的邮件
2015-12-07 15:24:39
463
原创 Post请求相关整理
html中最常见的post提交方式就是用form 表单提交,只需要定义一个form:指定好请求的url方法,加上几个要post的值,再添加一个submit按钮,点一下就自动提交。如果直接在页面中调用post请求,会导致页面跳转,给用户不好的体验,比如:提交评论会重新刷新页面,从用户角度考虑提交个评论还要重刷一下不是有病么,这种情形肯定是要用Ajax异步方式提交并刷新的。为了更好的交互效果,
2015-12-07 15:16:39
569
原创 linux 下 tomcat 安装配置
一、解压完成后,配置好java_home环境变量,启动失败。错误信息有提示,这个不难解决,无非是路径问题,我通过添加catalina_home环境变量解决。二、运行成功后,接着遇到显示不出tomcat主页问题:启动成功,8080端口没问题,防火墙神马的也没问题,查了下网上说:查看/etc/hosts 这个文件。看看有没有对应起来。比如说你的IP是192.168.10.133.那么你在/
2015-12-03 12:21:58
437
原创 linux 下 Mysql 安装配置
原文:http://www.zhihaoyu.com/article/61之前运行 install_db 脚本一直出问题。最后找到原因在于linux的chown命令,作为linux小白我只能呵呵一笑:指令名称 : chown 使用权限 : root 使用方式 : chown [-cfhvR] [--help] [--version] user[:group] file...
2015-12-03 12:19:28
527
原创 Mysql存储过程
原文地址 http://www.zhihaoyu.com/article/62有很长一段时间没写procedure了,MySql的存储过程的写法跟sql server稍有不同,这里用一个“点赞”的例子做下简单记录。首先定义proc:1.默认情况下,delimiter是分号;。在命令行客户端中,如果有一行命令以分号结束,那么回车后,mysql将会执行该
2015-12-03 12:17:08
491
原创 Tomcat文件上传路径问题
原文地址 http://www.zhihaoyu.com/article/69之前我将上传的文件直接放在项目路径下String root = ServletActionContext.getServletContext().getRealPath("/res");这样的话在每次更新war包到tomcat的时候都会删除掉用户上传的文件,总不能每次更新时都用复制粘贴。将文件上传路径分开
2015-12-03 12:10:39
7460
原创 Session与Cookie
原文地址:http://www.zhihaoyu.com/article/70http协议是无状态的,cookies 与session 两者的出现都是为了维持浏览器端与服务器端的联系,毕竟服务器总要搞清楚来访问的是A客户端还是B客户端。而要让服务器搞清楚这点,总需访问者留点“痕迹”给服务器来判断。session与cookies的主要区别也就在这里:留下来的这个“痕迹”是保存在了客户端还是服务器
2015-12-03 12:05:52
689
原创 QT 用QTreeView 显示图片文件的缩略图
鄙人尝试着用QTreeView实现了一下缩略图的功能。用QTreeView 实现图片文件缩略图功能与QTreeWidget有些不同,不是在view里面动手脚,而是在FileSystemModel中通过 QFileIconProvider改变文件的图标。这时需要通过重写QFileIconProvider 类中的 函数:QIcon QFileIconProvider::icon(const Q
2013-08-19 16:48:57
5046
原创 将cocos2d渲染窗体嵌入到qt中
开发游戏编辑器时用到,一个比较简单的实现,参考了将ogre嵌入到qt的方法。主要做法是通过重写CCEGLView源码,稍微改变了其中的两个函数,改写后的函数能够传递句柄,让cocos2d引擎渲染到我们自己创建的窗口中。首先建立一个qt项目,添加cocos2d的相关配置,这里就不多说了,项目资源视图是这样子的。要注意的是,因为建立的qt工程,cocos2d没有默认编译平台,这里改
2013-07-31 15:13:29
4763
4
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人