
Java
加贝氏_usun
一日江湖,终身江湖。前G厂程序员,后独立开发者。
实践:终身开发者 | 思维提升 | 财富自由
关注:搞钱项目 | 流量经济 | 社区生活
QQ技术交流群:317172639。
微信公众号:猿in(分享技能、职场、生活)
展开
-
Java线程的6种状态及切换(透彻讲解)
Java中线程的6种状态1.初始(NEW):新创建了一个线程对象,但还没有调用start()方法。2.运行(RUNNABLE):Java线程中将就绪(ready)和运行中(running)两种状态笼统的称为“运行”。线程对象创建后,其他线程(比如main线程)调用了该对象的start()方法。该状态的线程位于可运行线程池中,等待被线程调度选中,获取CPU的使用权,此时处于就绪状态(ready)。就绪状态的线程在获得CPU时间片后变为运行中状态(running)。3.阻塞(BLOCKED):表示线程阻转载 2020-07-03 16:48:14 · 453 阅读 · 0 评论 -
redis分布式锁的实现总结
在Java中,关于锁我想大家都很熟悉。在并发编程中,我们通过锁,来避免由于竞争而造成的数据不一致问题。通常我们以进程锁synchronized 、Lock来实现它,对于分布式程序,就不能用进程锁了,这时候常用的是分布式锁。什么是分布式锁分布式锁,是一种思想,它的实现方式有很多。比如,我们将沙滩当做分布式锁的组件,那么它看起来应该是这样的:加锁在沙滩上踩一脚,留下自己的脚印,就对应了加锁操作。其他进程或者线程,看到沙滩上已经有脚印,证明锁已被别人持有,则等待。解锁把脚印从沙滩上抹去,就是解锁的过程原创 2020-05-26 10:37:21 · 581 阅读 · 0 评论 -
玩转springboot启动banner定义所得
最近接手了一个springboot项目,不是不熟悉这个框架,启动时打印的信息吸引了我。这不是我熟悉的常用springboot的打印信息啊,我打开自己的项目:还真是的,不用默认的感觉也挺高大上的。一时兴起,就去研究了一下源代码,还正是有些收获,稍后我会总结一下。正常情况下做为一个老程序员,是不会对这种小儿科感兴趣的,不就是一个控制台打印嘛。哈哈!于是出于最初的好奇,研究了项目的源代码。看到...原创 2020-03-16 11:47:56 · 7345 阅读 · 1 评论 -
tomcat日志详解
文章目录tomcat日志配置tomcat 日志文件详解catalina.outcatalina.YYYY-MM-DD.loglocalhost.YYYY-MM-DD.loglocalhost_access_log.YYYY-MM-DD.txthost-manager.YYYY-MM-DD.logmanager.YYYY-MM-DD.log访问日志详细配置tomcat日志文件切割tomcat日志配...原创 2019-10-30 17:03:25 · 15322 阅读 · 0 评论 -
struts1+spring+hibernate+DWR整合方案详解
附录(收藏文章出处):http://wenku.baidu.com/view/ed5fc7bbfd0a79563c1e7299.html使用MyEclipse集成SSH和DWR金庸Ematrix http://blog.youkuaiyun.com/ematrix001使用 MyEclipse 集成 SSH 和 DWR开发环境: JDK 1.5 Tomcat 6.0 Spring 2.5 ...原创 2010-05-26 17:58:00 · 1456 阅读 · 0 评论 -
sping struts2 ibatis 整合
整合ssi虽然原理比较简单,但在实际操作的时候还是容易出错的,在这里也记录一下...各个组件的版本号:struts2.1 spring2.5 ibatis2.3struts2.1需要的包 首先是struts2.1必须的包: 然后是要与spring集成需要的包:struts2-spring-plugin-2.1.6.jarspring2.5需要的包 这里用的是集成了sp...原创 2010-05-04 15:42:00 · 885 阅读 · 0 评论 -
Ibatis 生成工具ibator的使用
最近做一个项目要用到ibatis、struts2、spring框架,以前看到过ibatis生成工具。想在项目中使用,下了官方的文档,里面有几种方法生成方法:buider.xml,java Class等,研究了一下,花了很多时间,现在觉得还是用插件好一些,现成的东西不用,要用什么命令行,真傻!咱做的是技术应用,不是研发,能最快用技术解决需要才是重点。下面总结一下用Eclipse Plug...原创 2010-05-04 10:05:00 · 4036 阅读 · 1 评论 -
阿里巴巴开源的诊断工具Arthas介绍
下载地址:https://download.youkuaiyun.com/download/jiabeis/11459480原创 2019-08-02 14:17:54 · 929 阅读 · 0 评论 -
bitset(位图)原理与用法
文章目录Bitset基础Java的Bitset使用场景解析参考分享自我的微信订阅号“猿in”,可以搜索关注。Bitset基础介绍bitset(bitmap)也就是位图,由于可以用非常紧凑的格式来表示给定范围的连续数据而经常出现在各种算法设计中。类实现了一个按需增长的位向量。位 set的每个组件都有一个boolean值。用非负的整数将BitSet的位编入索引。可以对每个编入索引的位进行测试...原创 2019-08-09 15:52:28 · 15884 阅读 · 4 评论 -
zookeeper集群迁移(扩容)详解
臭味相投的朋友们,我在这里:猿in小站:http://www.yuanin.netcsdn博客:https://blog.youkuaiyun.com/jiabeis简书:https://www.jianshu.com/u/4cb7d664ec4b微信订阅号“猿in”说明:本文zk为zookeeper缩写。文章目录zk集群原理Zookeeper迁移(扩容/缩容)迁移目标迁移步骤步骤1:新增节...原创 2019-09-04 16:52:03 · 5675 阅读 · 4 评论 -
nginx反向代理服务contextpath的问题解决
文章目录问题描述解决方案sub_filter方案使用重定向单独域名访问问题描述现在的企业服务,往往不是单体的,同时可能涉及中间件的访问如dubbo、solr、mq等。对于中间件的监控页面访问,如果直接暴露在公网,肯定这安全。需发对中间件访问进行安全加固,方法主要有:(1)限制使用IP白名单访问。(2)安全密码访问,不使用简单密码,对于没有密码的,可以使用basic认证,强密码访问。(3)...原创 2019-09-18 10:23:51 · 12808 阅读 · 0 评论 -
二维码和app扫码下载
文章目录二维码基本原理二级码生成在线二维码生成java代码生成二维码前端二维码生成app扫码下载二维码基本原理参考:https://cli.im/help/48235二维条码是指在一维条码的基础上扩展出另一维具有可读性的条码,使用黑白矩形图案表示二进制数据,被设备扫描后可获取其中所包含的信息。一维条码的宽度记载着数据,而其长度没有记载数据。二维条码的长度、宽度均记载着数据。二维条码有一维条...原创 2019-09-25 11:43:33 · 2256 阅读 · 0 评论 -
SpringCache组件使用和基于SpringBoot整合redis和ehcache
文章目录一:redis(memcache)和ehcacheehcacheredis(memcache)ehcache和redis比较二:Spring缓存抽象三:几个重要概念&缓存注解四:SpEL上下文数据五:开始使用1.开始使用前需要导入依赖2.然后在启动类注解@EnableCaching开启缓存3.缓存@Cacheable4.配置@CacheConfig5.更新@CachePut6.清除...原创 2019-10-11 15:22:42 · 1213 阅读 · 0 评论 -
Struts 2.1.8.1+spring 3.0.2+hibernate 3.5.0
关于整合工程(s2shstudy):a demo of study project which can be used direct when needed. this is a project of struts2, hibernate,spring.used hibernate annotation,use spring context test: there we use...原创 2010-06-02 11:06:00 · 1720 阅读 · 1 评论 -
spring事务的五种配置方式
通过这次的学习发觉Spring事务配置只要把思路理清,还是比较好掌握的。其中第二种方式:所有Bean共享一个代理基类和第四种方式:使用tx标签配置的拦截器用的较多。总结如下:Spring配置文件中关于Spring事务配置总是由三个组成部分,分别是DataSource、TransactionManager和代理机制这三部分,无论哪种配置方式,一般变化的只是代理机制这部分。DataSour...原创 2010-06-12 16:53:00 · 475 阅读 · 0 评论 -
Java同步机制收集总结--synchronized
虽然很少用到同步,出于个人兴趣自学了一下。现对JAVA中的同步收集学习的东西总结一下,让自己技术的条理化,能够沉淀下来。 同步就是串行使用一些资源. JAVA中synchronized关键字能够作为函数的修饰符,也可作为函数内的语句,也就是平时说的同步方法和同步语句块。假如再细的分类,synchronized可作用于instance变量、object reference(对象引用)、sta原创 2010-02-11 11:22:00 · 463 阅读 · 0 评论 -
java 泛型的应用--s2si框架中的应用
java泛型对我来说是一个很熟悉的概念了,虽然理解不是太深刻。以前用的多的是在java基本类型中加入泛型处理,用起来比较方便。例如:HashMap map = new HashMap ();最近用到struts2+spring+ibatis框架的时候,现有的框架自己感觉很糟糕,就想自己搭一个属于自己的框架。对于spring自己觉得了解的并不深入,要用到spring的依赖注入,在dao层就要原创 2010-05-06 10:29:00 · 1218 阅读 · 3 评论 -
log4j搭建日志平台
最近项目要搭建一个日志平台,没有现成的思路。自己就上网去查,了解log4j搭建日志系统。可以输出在控制台、文件(logfile)、也可以输出到数据库。输出到数据库可以用log4j的配置,也可以继承org.apache.log4j.AppenderSkeleton;实现输出。但是实现类,不能由spring注入baseDao.这是个很烦恼的问题,但是已经解决(参考Frame/java调用spring管理的bean——spring的使用)。用log4j搭建日志系统还是比较简单的,主要工作是配置。这里就自己的一些总原创 2010-11-18 14:55:00 · 603 阅读 · 0 评论 -
高并发下生成订单号的策略
臭味相投的朋友们,我在这里:猿in小站:http://www.yuanin.netcsdn博客:https://blog.youkuaiyun.com/jiabeis简书:https://www.jianshu.com/u/4cb7d664ec4b微信免费订阅号“猿in”互联网快速发展的今天,分布式应用系统已经见怪不怪,在分布式系统中,我们需要各种各样的ID,既然是ID那么必然...原创 2018-07-11 14:06:46 · 42814 阅读 · 2 评论 -
java技术书籍推荐(结合技能树)
博主当年高考大学填志愿的时候老师推荐了个电气信息一类的专业,对这个专业的名字一脸懵逼,但是听说可以玩电脑,顿时觉得暗爽,这不就是我时时刻刻日思夜想的生活吗,喝着啤酒和三五好友继续打dota,继续我们的网吧5连黑。谁知开学才知道根本不是这么回事,理想总是自作多情,现实却狠狠的抽自己大嘴巴子,从此踏上不归路。好了言归正传,给大家分享下自己从学校到工作看的一些书籍,也算是一些成长经历吧。在学校的日子还是...转载 2018-07-05 16:11:13 · 1896 阅读 · 0 评论 -
深入理解程序、 jvm实例、进程、线程的关系
深入理解程序、 jvm实例、进程、线程的关系问题引出实验进程的概念线程的概念结论问题引出命令启动了两个java程序,它们之间是什么关系?java程序又和JVM之间是什么关系,它们是共用一个JVM,还是每个java程序,都有一个JVM?进程和程序是什么关系,进程和线程是什么关系?实验用命令启动两个一样的java程序。#java HelloWorld用jvisual观察到有两个Hel...原创 2018-09-30 10:08:18 · 2057 阅读 · 0 评论 -
Java滑块验证码原理和实现
文章目录滑块验证码引入滑块验证码原理滑块验证码实现参考滑块验证码引入当前互联网流行使用滑块验证码,如下图是网易严选的登录验证部分。滑块验证码原理很多网站使用滑块验证码提高网站安全性,为了做到真正的验证,必须要走后台服务器。下面是java实现滑块验证的核心步骤:从服务器随机取一张图片,并对图片上的随机x,y坐标和宽高一块区域抠图;根据步骤一的坐标和宽高,使用二维数组保存原图上抠图区...原创 2019-01-14 15:07:13 · 18090 阅读 · 16 评论 -
linux服务器open too many files异常的排查
线上遇到很多打印 open too many files 异常1:首先看下是否是系统限制导致的ulimit -aopen files 查看linux系统允许单进程打开的最大句柄数2: 如果系统限制的打开句柄过低,可以通过如下设置:vim /etc/security/limits.conf#在最后加入soft nofile 65535hard nofile 655353:统计进...原创 2019-06-27 11:06:10 · 860 阅读 · 0 评论 -
过滤器、监听器、拦截器简介及在SpringBoot使用方法
过滤器依赖与servlet容器,对几乎所有的请求起作用,在容器启动是初始化调用init方法,以后每个请求都调用doFilter(),主要的用途是过滤字符编码、做一些业务逻辑判断等。其工作原理是,它是随你的web应用启动而启动的,只初始化一次,以后就可以拦截相关请求,只有当你的web应用停止或重新部署的时候才销毁。在SpringBoot中的应用拦截器的定义: //注册器名称为customFi...原创 2019-08-01 10:16:56 · 367 阅读 · 0 评论 -
SpringMVC使用validation完成后端数据校验(理论和实践)
原文地址:使用Spring完成后端数据校验前言数据的校验是交互式网站一个不可或缺的功能,前端的js校验可以涵盖大部分的校验职责,如用户名唯一性,生日格式,邮箱格式校验等等常用的校验。但是为了避免用户绕过浏览器,使用http工具直接向后端请求一些违法数据,服务端的数据校验也是必要的,可以防止脏数据落到数据库中,如果数据库中出现一个非法的邮箱格式,也会让运维人员头疼不已。我在之前保险产品...转载 2018-03-16 17:50:26 · 404 阅读 · 0 评论 -
java调用spring管理的bean——spring的使用
最近项目要搭建一个日志平台,没有现成的思路。自己就上网去查,了解log4j搭建日志系统。可以输出在控制台、文件(logfile)、也可以输出到数据库。输出到数据库可以用log4j的配置,也可以继承org.apache.log4j.AppenderSkeleton;实现输出。但是实现类,不能由spring注入baseDao.这是个很烦恼的问题,于是想用一个独立的jdbc解决这个问题,但是这又似乎太变...原创 2010-11-18 14:42:00 · 1329 阅读 · 0 评论 -
定时器介绍与Spring中定时器的配置
定时器介绍与Spring中定时器的配置文章分类:Java编程1定时器的作用在实际的开发中,如果项目中需要定时执行或者需要重复执行一定的工作,定时器显现的尤为重要。例如,公司的考勤系统---刷卡 财务的审查,入账,报表都会需要定时器当然如果我们不了解定时器就会用线程去实现,例如:package org.lzstone.actionpublic class Finance...原创 2010-08-06 12:05:00 · 1893 阅读 · 0 评论 -
java 正则表达式
众所周知,在程序开发中,难免会遇到需要匹配、查找、替换、判断字符串的情况发生,而这些情况有时又比较复杂,如果用纯编码方式解决,往往会浪费程序员的时间及精力。因此,学习及使用正则表达式,便成了解决这一矛盾的主要手段。 大 家都知道,正则表达式是一种可以用于模式匹配和替换的规范,一个正则表达式就是由普通的字符(例如字符a到z)以及特殊字符(元字符)组成的文字模式,它 用以描述在查找文字主体时待匹配的...原创 2010-02-11 10:34:00 · 258 阅读 · 0 评论