随笔分类 -  Java

Java相关
摘要:公司内部同事分享的一篇文章 周末看到一个用jstack查看死锁的例子。昨天晚上总结了一下jstack(查看线程)、jmap(查看内存)和jstat(性能分析)命令。供大家参考 1.Jstack 1.1 jstack能得到运行java程序的java stack和native stack的信息。可以轻松 阅读全文
posted @ 2018-03-13 20:42 森林木马 阅读(10689) 评论(0) 推荐(0)
摘要:前言 如今无论大小公司,都喜欢出一些算法题来测试面试者的算法功底或者说是计算机功底。而如今Android和Java把很多方法都封装成API了,导致我们写代码往往只是调调API,没有深入了解过一些功能的底层算法实现。因此,研究算法一是能在面试中正确快速的解决算法题,而是能提高我们的编程功底,更好地编写 阅读全文
posted @ 2018-03-13 20:08 森林木马 阅读(1365) 评论(3) 推荐(2)
摘要:多线程问题: 1、java中为什么要使用多线程使用多线程,可以把一些大任务分解成多个小任务来执行,多个小任务之间互不影像,同时进行,这样,充分利用了cpu资源。 2、java中简单的实现多线程的方式 继承Thread类,重写run方法; 3、java线程的状态创建:当new了一个线程,并没有调用st 阅读全文
posted @ 2018-03-13 15:20 森林木马 阅读(38616) 评论(5) 推荐(3)
摘要:一、 使用方式 (1)Hashtable 是一个散列表,它存储的内容是键值对(key-value)映射。 (2)Hashtable 继承于Dictionary,实现了Map、Cloneable、java.io.Serializable接口。 (3)Hashtable 的函数都是同步的,这意味着它是线 阅读全文
posted @ 2018-03-13 10:35 森林木马 阅读(2498) 评论(0) 推荐(0)
摘要:HashMap实现原理及源码分析 哈希表(hash table)也叫散列表,是一种非常重要的数据结构,应用场景及其丰富,许多缓存技术(比如memcached)的核心其实就是在内存中维护一张大的哈希表,而HashMap的实现原理也常常出现在各类的面试题中,重要性可见一斑。本文会对java集合框架中的对 阅读全文
posted @ 2018-03-12 20:08 森林木马 阅读(1438) 评论(1) 推荐(1)
摘要:一、设计模式的分类 总体来说设计模式分为三大类: 创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。 结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。 行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责 阅读全文
posted @ 2018-03-12 14:21 森林木马 阅读(570) 评论(0) 推荐(0)
摘要:在排序过程中,全部记录存放在内存,则称为内排序,如果排序过程中需要使用外存,则称为外排序。 一般来说外排序分为两个步骤:预处理和合并排序。首先,根据可用内存的大小,将外存上含有n个纪录的文件分成若干长度为t的子文件(或段);其次,利用内部排序的方法,对每个子文件的t个纪录进行内部排序。这些经过排序的 阅读全文
posted @ 2018-03-08 19:37 森林木马 阅读(322) 评论(0) 推荐(0)
摘要:【程序1】 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第四个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 1.程序分析: 兔子的规律为数列1,1,2,3,5,8,13,21.... 1 2 3 4 5 6 7 8 9 10 11 12 13 1 阅读全文
posted @ 2018-03-07 13:44 森林木马 阅读(360) 评论(0) 推荐(0)
摘要:一、Swagger2是什么? Swagger 是一款RESTFUL接口的文档在线自动生成+功能测试功能软件。 Swagger 是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。总体目标是使客户端和文件系统作为服务器以同样的速度来更新。文件的方法,参数和模型紧 阅读全文
posted @ 2018-01-23 10:15 森林木马 阅读(321) 评论(0) 推荐(0)
摘要:多模块拆分的必要性 使用Java技术开发的工程项目,无论是数据处理系统还是Web网站,随着项目的不断发展,需求的不断细化与添加,工程项目中的代码越来越多,包结构也越来越复杂这时候工程的进展就会遇到各种问题: (1)不同方面的代码之间相互耦合,这时候一系统出现问题很难定位到问题的出现原因,即使定位到问 阅读全文
posted @ 2017-12-12 20:05 森林木马 阅读(37421) 评论(21) 推荐(0)
摘要:一、POM中profile的配置 首先是profile配置,在pom.xml中添加如下profile的配置: 这里定义了三个环境,分别是development(开发环境)、test(测试环境)、production(生产环境),其中开发环境是默认激活的(activeByDefault为true),这 阅读全文
posted @ 2017-12-07 14:48 森林木马 阅读(5736) 评论(0) 推荐(0)
摘要:金额要用BigDecimal 金额计算不能用doube!!!! 金额计算必须用BigDecimal,下面对比一下用double 跟BigDecimal的区别。先看一个小例子: 请看题: 示例1 问, 结果是多少? 0.01? No! 结果是0.009999999999999998! 为什么会这样呢? 阅读全文
posted @ 2017-12-06 10:40 森林木马 阅读(13645) 评论(0) 推荐(0)
摘要:最近没有及时写文章,把最近处理的几个问题集中了一下写出来。这篇文章是关于如何处理spring项目中引入数据库连接等 使用的用户名和密码的明文进行加密。防止被他人窃取利用。 我们选择的加密方式为DES加密解密方案。直接上代码: 1. 首先要编写一个DES加密解密工具。 2. 用到了一个Base64的工 阅读全文
posted @ 2017-08-16 20:46 森林木马 阅读(7865) 评论(1) 推荐(1)
摘要:刚才写了一篇文章关于图形验证码的,感觉没有考虑集群情况。其实集群无非加一个集群缓存 将session换成redis或者memcache。 今天记录一下 使用 redis做集群图形验证码的相关方案。 基于文章: http://www.cnblogs.com/owenma/p/7375540.html 阅读全文
posted @ 2017-08-16 20:29 森林木马 阅读(1692) 评论(0) 推荐(0)
摘要:最近收到leader的一个邮件说我们的项目有短信轰炸风险。顿时让一个做技术开发的人为之一颤。今天给大家介绍一个解决这个问题的使用工具。 就是谷歌的 kaptcha 进行验证码生成和校验。闲话少说直接上代码。 1. 首先下载一个工具包 2. 建立一个spring工程填写相关代码。 两个方法一个是获取图 阅读全文
posted @ 2017-08-16 20:08 森林木马 阅读(3193) 评论(0) 推荐(0)
摘要:Mybatis Mysql生成实体类 用到的Lib包: mybatis-generator-core-1.3.2.jarmysql-connector-java-5.1.30.jar 1. 创建一个文件generator.properties, 主要用于配置相关路径和数据库信息。 2. 创建一个配置 阅读全文
posted @ 2017-08-05 16:03 森林木马 阅读(1466) 评论(0) 推荐(0)
摘要:SpringMVC中四个基本注解: @Component、@Repository @Service、@Controller 看字面含义,很容易却别出其中三个: @Controller 控制层,就是我们的action层 @Service 业务逻辑层,就是我们的service或者manager层 @Re 阅读全文
posted @ 2017-07-22 15:53 森林木马 阅读(526) 评论(2) 推荐(0)
摘要:Java虚拟机编译机制:更改常量部分 最近一个Java项目中需要修改一个静态常量的值,本地修改编译以后调试正常,然后把对应的entity类的class文件上传到服务器对应的目录以后系统依旧我行我素,各种清除缓存,各种重启,最后查询了相关资料,使用GUI反编译工具反编译查看编译后源码,终于找到问题所在 阅读全文
posted @ 2017-04-18 15:03 森林木马 阅读(1630) 评论(0) 推荐(0)
摘要:当我们需要通过xml格式处理sql语句时,经常会用到< ,<=,>,>=等符号,但是很容易引起xml格式的错误,这样会导致后台将xml字符串转换为xml文档时报错,从而导致程序错误。 这样的问题在iBatiS中或者自定义的xml处理sql的程序中经常需要我们来处理。其实很简单,我们只需作如下替换即可 阅读全文
posted @ 2017-01-23 13:54 森林木马 阅读(879) 评论(0) 推荐(0)
摘要:每次感觉配这个超级简单 但是每次都要查下 记一下好了 Linux下安装jdk,步骤如下 1:下载jdk包:本章使用的为后缀为tar.gz的文件(不需要安装),如jdk-8u111-linux-x64.tar.gz 下载RPM包: wget --no-check-certificate --no-co 阅读全文
posted @ 2016-12-07 09:09 森林木马 阅读(37017) 评论(4) 推荐(1)