
java之路
Roc-lab
这世界风华正茂可别错过好时光。
展开
-
easyexcel自定义样式策略
package com.sto.kms.fin.common.excel;import com.alibaba.excel.annotation.ExcelProperty;import com.alibaba.excel.metadata.Head;import com.alibaba.excel.util.StyleUtil;import com.alibaba.excel.write.handler.WriteHandler;import com.alibaba.excel.write..原创 2021-06-11 16:32:46 · 3520 阅读 · 1 评论 -
反射的方式获取对象中的属性及其属性值
之前一直不知道反射到底能用在哪里,直到我看到了公司OA的考勤表设计:DAY表示每个月的天数,后面的数字表示每月的几号,A表示上午,B表示下午。比如DAY01A用以表示当月1号的出勤情况。所以,这个表用以记录考勤数据的字段共有62个。。。后来想用这个每天考勤数据,才发现反射真是个好东西。以三天数据为例:{ "day01a":0, "day01b":1, "day0...原创 2019-05-18 17:31:57 · 8254 阅读 · 0 评论 -
目录树生成
1.使用命令行生成目录树打开所要生成目录树的路径,如“F:\电影”,输入cmd -> 回车,弹出命令行工具,输入tree /f命令,回车,则会生成一个目录树结构。2.使用目录树生成工具生成目录树目录树生成工具:https://github.com/1032262055/directory-tree-generator-gui下载该jar包,直接打开,选择要生成...原创 2018-10-17 22:23:56 · 3380 阅读 · 0 评论 -
http的请求方式
1) GET:- Used when the client is requesting a resource on the Web server.当客户端向Web服务器请求一个资源的时候使用。2) HEAD:- Used when the client is requesting some information about a resource but not requesting the res原创 2018-02-22 13:20:58 · 413 阅读 · 0 评论 -
Spring MVC控制器的两种实现
1.基于Controller接口的控制器:web.xml<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javae原创 2018-01-23 08:41:37 · 3311 阅读 · 1 评论 -
浅析hashCode()和equals()关系
散列码是由对象的实例域产生的一个整数。准确来说,不同的数据域的对象将产生不同的散列码。hashCode()返回对象的散列码。Object类中的hashCode方法:public native int hashCode();说明是一个本地方法,它的实现是根据本地机器相关的。和抽象方法类似,如果自定义类,就要负责实现这个类的hashCode方法。但是自己实现的hashCode方法要原创 2017-05-29 14:47:48 · 526 阅读 · 0 评论 -
通配符类型
通配符类型:就是允许类型参数变化的泛型。其中,Pair(raw)为原始类型(即Pair),Pair为泛型类型。Employee为父类,Manager为子类。Pair表示任何泛型Pair类型,它的参数类型是Employee的子类,如Pair.Pair表示Manager所有的超类型。如Pair、PairPair和Pair都表示一个范围,通配符类型的灵活性就体现在这里。Pai和Pai原创 2017-05-28 11:19:10 · 1392 阅读 · 0 评论 -
Java中Console类的用法
由于Scanner类输入是可见的,故Scanner类不适用于从控制台读取密码。从Java se 6开始加入了Console类来解决此问题。要想读取账号密码,可以参考以下代码:public class Test_Console { publicstatic void main(String[] args) { Consolec = Sys原创 2017-05-08 19:50:36 · 17479 阅读 · 2 评论 -
基本数据类型所占字节数
在C/C++中基本数据类型因开发环境的不同而不同。但是,C标准中并没有具体给出规定那个基本类型应该是多少字节数,而且这个也与机器、OS、编译器有关,比如同样是在32bits的操作系统系,VC++的编译器下int类型为占4个字节;而tuborC下则是2个字节。下面给出不同位数编译器下的基本数据类型所占的字节数: 在Java中,所有的数值类型所占据的字节数量与平台无关! 并且在Java中没有任何无原创 2017-05-05 23:16:25 · 3614 阅读 · 0 评论 -
java中堆和栈区别
Java 把内存划分成两种:一种是栈内存,另一种是堆内存。在函数中定义的一些基本类型的变量和对象的引用变量都是在函数的栈内存中分配,当在一段代码块定义一个变量时,Java 就在栈中为这个变量分配内存空间,当超过变量的作用域后,Java 会自动释放掉为该变量分配的内存空间,该内存空间可以立即被另作它用。栈内存中存放所有在方法中定义的局部变量、基本数据类型。线程不共享。原创 2017-04-25 22:12:30 · 698 阅读 · 0 评论 -
final和static的区别
final特点:final修饰的类,不能被继承。final修饰的方法,不能被覆盖。final修饰的成员变量,是一个常量。且只能被赋值一次。 (基本数据类型值不能改变。引用数据类型不能被重新赋值,但是引用变量所引用的对象内容可以再改变。)也可修饰局部变量,但是要在使用之前初始化。(声明同时初始化 或 构造函数中初始化)唯一一个既可以修饰属性又可以修饰局部变量的修饰符。不原创 2017-04-20 14:46:34 · 509 阅读 · 0 评论 -
StringBuffer和StringBuilder的区别
1.StringBuffer:线程安全的可变字符序列。一个类似于 String 的字符串缓冲区,但不能修改。虽然在任意时间点上它都包含某种特定的字符序列,但通过某些方法调用可以改变该序列的长度和内容。 2.StringBuilder:一个可变的字符序列。此类提供一个与StringBuffer 兼容的 API,但不保证同步。该类被设计用作 StringBuffer 的一个简易替换,用原创 2017-03-29 22:47:47 · 586 阅读 · 0 评论 -
构造方法与静态块以及构造块执行顺序
1.在主函数中,静态块只执行一次,且优先于构造快,构造函数。class Demo{ {System.out.println("构造块");} static{//执行一次 System.out.println("静态块"); } public Demo() { System.out.println("构造函数"); }}public class TestStatic { st原创 2017-03-29 00:07:37 · 1839 阅读 · 0 评论 -
String类和StringBuffer类的区别
相同点:String类和StringBuffer类都用来处理字符串。String类和StringBuffer类都提供了length()、toString()、charAt()和substring()方法,它们的用法在两个类中相同。对于String类和StringBuffer类,字符在字符串中的索引位置都从0开始。不同点:String类是不可变类 ,而StringBuffer是可变类。Str原创 2017-03-27 15:54:53 · 1723 阅读 · 0 评论 -
equals和"=="的区别
“==”操作符的应用场景:(1) 基本数据类型的比较;(byte,short,char,int,long,float,double,boolean)(2) 判断引用是否指向堆内存的同一块地址。(是对值的比较,引用数类型比较地址值,基本数据类型直接比较数值)equals的应用场景: - 如果没有对equals方法进行重写,则比较的是引用类型的变量所指向的对象的地址; - 如果对equals方法进行了原创 2017-03-06 22:28:41 · 422 阅读 · 0 评论 -
Major GC和Full GC的区别以及触发条件
作者:RednaxelaFX 链接:http://www.zhihu.com/question/41922036/answer/93079526 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。针对HotSpot VM的实现,它里面的GC其实准确分类只有两大种:Partial GC:并不收集整个GC堆的模式Young GC:只收集young gen的GCOl转载 2017-02-28 23:54:45 · 2927 阅读 · 0 评论 -
适配器模式
适配器模式(Adapter):将一个类的接口转换成客户希望的另外一个接口。A d a p t e r 模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。 适用场景: 1、已经存在的类的接口不符合我们的需求; 2、创建一个可以复用的类,使得该类可以与其他不相关的类或不可预见的类(即那些接口可能不一定兼容的类)协同工作; 3、在不对每一个都进行子类化以匹配它们的接口的情况下,使用一些转载 2017-02-26 19:48:08 · 353 阅读 · 0 评论 -
原子性操作和volatile
A想要从自己的帐户中转1000块钱到B的帐户里。那个从A开始转帐,到转帐结束的这一个过程,称之为一个事务。在这个事务里,要做如下操作:1. 从A的帐户中减去1000块钱。如果A的帐户原来有3000块钱,现在就变成2000块钱了。2. 在B的帐户里加1000块钱。如果B的帐户如果原来有2000块钱,现在则变成3000块钱了。如果在A的帐户已经减去了1000块钱的时候,忽然发生了意外,比如停电什么的,导原创 2017-02-26 18:22:58 · 919 阅读 · 0 评论 -
多态绑定机制
1. 实例方法与引用变量所引用的对象的方法绑定; 2. 静态方法与引用变量所声明的类型的方法绑定; 3. 成员变量(实例变量、静态变量)与引用变量所声明的类型的成员变量绑定。原创 2016-09-02 21:22:41 · 1084 阅读 · 0 评论 -
struts2动态方法调用
当我们访问一个Action时,默认是访问execute()方法,但当在一个Action中存存多个方法时,这时我们应该怎么定位到想要访问的方法呢?这时就需要用到动态方法调用DMI(Dynamic Method Invocation)。这里简单介绍两种动态调用的方法:一、method属性二、通配符 一、method属性在struts.xml文件中,我们可以指定method属性,来定位我们要访问转载 2016-05-13 11:52:06 · 637 阅读 · 0 评论 -
Struts2核心工作原理解析
这篇文章对应的并非Struts2的最新版本,但其原理还是相同的。这是Struts2官方站点提供的Struts 2 的整体结构。 一个请求在Struts2框架中的处理大概分为以下几个步骤: 客户端提起一个(HttpServletRequest)请求,如上文在浏览器中输入”http://localhost:8080/TestMvc/add.action”就是提起一个(HttpSer转载 2016-05-13 11:48:46 · 395 阅读 · 0 评论