首页/分类:Java
2018-01-14 写了一篇文章

我有故事,谁酒管够?

  总结一下笔者2017的最后两个月发生的事情真是难忘,一切的发生好似“蝴蝶效应”,我有故事谁酒管够? 笔者最近好想吃巧克力,要过年了谁送我一盒当作新年礼物吧哈哈! ​码界代有人才出,最近一张大神总结的各大公司的算法的图片很火。 说了好多闲话,还是聊一聊笔者进入新公司接触的JFinal框架吧。 JFinal简介 JFinal是一个国产框架,项目开发始于2011年初,开源于2012年3月18日,其作者詹波(James Zhan)曾任搜格信息技术有限公司Java架构师,北京信息管理科学研究所CTO,现任微格网际(北京)科技有限公司联合创始人、网校网CTO。 JFinal 是基于 Java 语言的极速 WEB + ORM 框架,其核心设计目标是开发迅速、代码量少、学习简单、功能强大、轻量级、易扩展、Restful。在拥有Java语言所有优势的同时再拥有ruby、python、php等动态语言的开发效...

2017-12-17 写了一篇文章

如何生成1到n不重复的随机数?

我的思路:先把1...n的生成放到一个a

2017-12-10 写了一篇文章

如何做精确的计算?

​实际工作中像银行、保险等系统,都是要精确计算到小数点后XX位的。由于Java的简单类型不能提供精确的浮点运算,但是在java.math下有一个BigDecimal类可以帮助我们做精确的浮点计算,包括四则运算和四舍五入。 使用BigDecimal类型要用String来转换,比如我们要做一个加法运算,需要先将两个浮点数转为String,然后转换成BigDecimal类型调用add方法,然后把计算的BigDecimal类型结果再转换为浮点数。   packagechuangyeyilu;   importjava.math.BigDecimal;   /** * 浮点数计算 * * @author Pan Chong * */ publicclass FolatCompute {   privatestaticfinalintDEF_DIV_SCALE = 10; // 保留小数的精度   /** * 加法 * @param n1 * @param n2 * @return */ publicstaticdouble ad...

2017-12-1 写了一篇文章
2017-11-12 写了一篇文章

IOC和AOP

IOC和AOP是Spring的两大特性 IOC(Inversion of Control),即“控制反转”,也叫“依赖注入”,英文名字DI(Dependency Injection)。IOC并不是一种技术实现,它是一种设计思想。在Java项目开发中,我们定义的每个类都是单一职责,都有它们特定的功能,然后通过类与类之间的相互协作来实现特定的业务处理逻辑。这样如果每个类都需要负责管理与自己有交互的类的引用和依赖,代码将会变的异常难以维护和极度的高耦合,和软件设计“高内聚,低耦合”的原则严重不符。IOC的设计思想正是用来解决这个问题,我们通过IOC将这些相互依赖对象的创建、协调工作交给Spring容器去处理,每个对象只需要关注其自身的业务逻辑关系就可以了。这样看,本来需要由类做的工作交给了Spring,由spring容器控制对象如何获取外部资源(包括其他对象和文件资料等等),进行了反转。 AOP(Aspect Oriented Pr...

2017-10-29 写了一篇文章

穷的都要死锁了

前不久去天天看看面试,有一道题在我看来很是奇葩,题目是写一个死锁实例出来。其实这次面试我也是很想吐槽的,改日等我吃饱喝足再吐吧,最近这个月实在穷的很,吃饭的钱都没有啦,深深的体会到了一块钱难倒英雄好汉的赶脚。如果你要是个妹子就帮我做顿饱饭,如果你是个汉子就隔三差五请我吃顿饭,要不然在下面打赏小的几块钱也行,在下实在感激不尽,临表涕零,不知所言。还是进入正题吧,在实际编程中都是要避免出现死锁。死锁出现就是两个线程等待对方等待的资源,实际上是两个线程共享的东西。当时这个题我是跪了。毕竟本人很菜,从来没手写过代码,习惯了PC上敲代码,还真是有必要加强手写代码的训练啊。下面是我后来在eclipse里面敲的代码。

2017-10-22 写了一篇文章

什么是凯撒密码?

凯撒密码据传是由罗马帝国的奠基者,著名的军事统帅、政治家盖乌斯·尤利乌斯·恺撒(Gaius Julius Caesar,公元前102年7月12日—公元前44年3月15日),史称恺撒大帝发明的,他的基本思想是:通过把字母移动一定的位数来实现加密和解密。明文中的所有字母都在字母表上向后(或向前)按照一个固定数目进行偏移后被替换成密文。例如,当偏移量是3的时候,所有的字母A将被替换成D,B变成E,以此类推X将变成A,Y变成B,Z变成C。由此可见,位数就是凯撒密码加密和解密的密钥。 测试结果如下: ​输入【A】加密,输入【D】,请输入: ​D ​请输入密文: ​inagtmekeora ​请输入秘钥: ​6 ​inagtmekeora解密后为: chuangyeyilu  

2017-10-16 写了一篇文章

transient & volatile

transient和volatile两个关键字一个用于对象序列化,一个用于线程同步,都是Java中比较高大上的东西,说下自己的理解。 transient ​    ​transient是类型修饰符,只能用来修饰字段。在对象序列化的过程中,标记为transient的变量不会被序列化。 ​    ​把一个对象转化为字节流的过程称为序列化,从字节流中把对象重建出来称为反序列化。transient为不应被序列化的数据提供了一个语言级的标记数据方法。 volatile ​    ​volatile也是变量修饰符,只能用来修饰变量。volatile修饰的成员变量在每次被线程访问时,都强迫从共享内存中重读该成员变量的值。而且,当成员变量发生变化时,强迫线程将变化值回写到共享内存。这样在任何时刻,两个不同的线程总是看到某个成员变量的同一个值。所以在两个或者更多的线程访问的成员变量上使用volatile。当要访问的变量已在synchron...

2017-09-26 写了一篇文章

文件传输工具,代码在我的码云上

         Netty框架在我平时的工作中其实并没有用到,前几天想做一个局域网内由Windows系统向Linux系统传输文件的小工具,发现Netty能完美的解决我的需求,于是便了解了一下Netty框架。以下是来自百度百科对Netty的描述。Netty是由JBOSS提供的一个java开源框架。Netty提供异步的、事件驱动的网络应用程序框架和工具,用以快速开发高性能、高可靠性的网络服务器和客户端程序。也就是说,Netty 是一个基于NIO的客户、服务器端编程框架,使用Netty 可以确保你快速和简单的开发出一个网络应用,例如实现了某种协议的客户,服务端应用。Netty相当简化和流线化了网络应用的编程开发过程,例如,TCP和UDP的socket服务开发。“快速”和“简单”并不用产生维护性或性能上的问题。Netty 是一个吸收了多种协议的实现经验,这些协议包括FTP,SMTP,HTTP,各种二进制,文本协议,并经过相当精心设计的...

2017-09-24 写了一篇文章

小知识

XML里的CDATA 众所周知,所有xml文档中的文本都会被XML解析器解析。如果希望其中某段文本不被解析怎么办?那就可以用<![CDATA[不被解析的文本]]>实现,CDATA区段(CDATA section)中的文本会被解析器忽略。 XML解析文本一般都是通过这几个字符,<& > ‘ “  来解析的。 例如 <name><first>Pan </first><last>Chong</last></name> 会被解析成 <name> <first>Pan</first> <last>Chong</last> </name> 如果这样 <name><first>Pan </first><last><Chong</last></name> 那么会报错,因为多了一个< 严格地讲,在 XML 中仅有字符"<"和"&" 是非法的,所以当需要用到小于号和与符号时必须转义。省略号...