楠神专享JAVA基础小知识

以下内容,只是自己总结自己所用的一些Java小知识点,有错误欢迎指出,不喜勿喷,谢谢大家!

1.获取到当前java类的绝对路径
String url = (ClassName.class.getResource("").getPath()).toString()

2.与 & 短路与 && 或 || 非 !

3.将字符串转换成小数点后两位的double类型:
DecimalFormat df = new DecimalFormat("##0.00");
df.format(Double.parseDouble(""));

4.获取当前时间的文字格式(例:201909181738)
private String getDate(){
SimpleDateFormat sdf=new SimpleDateFormat(“yyyyMMddHHmm”);
String str=sdf.format(new Date());
return str;}

5.提供生日计算年龄的方法:

date类型参数定义:
SimpleDateFormat sdf = new SimpleDateFormat(“yyyy-MM-dd”);
Date d1 = sdf.parse(“2000-08-03”);
计算年龄代码如下:
public static int getAge(Date birthDay) throws Exception {
if(birthDay == null ){
throw new IllegalArgumentException(
“The birthDay is null.It’s unbelievable!”);}
Calendar cal = Calendar.getInstance();
if (cal.before(birthDay)) {
throw new IllegalArgumentException(
“The birthDay is before Now.It’s unbelievable!”); }
int yearNow = cal.get(Calendar.YEAR);
int monthNow = cal.get(Calendar.MONTH);
int dayOfMonthNow = cal.get(Calendar.DAY_OF_MONTH);
cal.setTime(birthDay);
int yearBirth = cal.get(Calendar.YEAR);
int monthBirth = cal.get(Calendar.MONTH);
int dayOfMonthBirth = cal.get(Calendar.DAY_OF_MONTH);
int age = yearNow - yearBirth;
if (monthNow <= monthBirth) {
if (monthNow == monthBirth) {
if (dayOfMonthNow < dayOfMonthBirth) age–;
}else{ age–; }}
return age; }

6.MD5 加盐加密问题:
关于MD5 加密 有多种方法,推荐使用Java自带的DigestUtils类
在这里插入图片描述
md5Hex方法中参数如果只有需要加密的字符串就只传入字符串,如果需要加盐,则将字符串与盐以“+”相连,“+”前后空格;

7.关于base64加密编码的问题:
可以直接使用Java开源的base64功能,
☆将字节数组类型的内容转换成字节数组类型的base64格式:
byte[] baseDate = Base64.encode(JsonData.toString().getBytes());
因为base64是将字节数组类型 转换成字节数组类型, 所以入参出参要转换类型
出参转换为String类型:
new String(baseDate,“UTF-8”)
☆将String类型的base64格式内容转换成字节数组类型的内容:
byte[] rs = Base64.decode(String);
出参转换为String类型:
new String(rs,“UTF-8”);

8.关于JsonObject类相关问题:
使用alibaba下的JSON包
我们可以将实体直接转成json类型
//解析实体类转换成Object类型
Object jsonData = JSON.toJSON(req);
//获取Json中的普通字段使用 getString()方法 返回JSONObject类型字段
//获取json中的实体字段使用getJSONObject()方法JSONObject类型字段
//获取json中的循环体字段使用getJSONArray()方法JSONObject类型字段
如果可以保证json和实体类的结构相同的情况下,可以使用JSONObject.parseObject() 将json字符串传入 可返回实体

9.使用notepad++ 可以直接正则表达式 将中英文字段生成 javaBean中的属性:
(.+)\t(.+) /** $1 */\nprivate String $2;\n
//可以根据中英文前后位置 调整1和2的顺序
楠神专享JAVA基础小知识_第1张图片楠神专享JAVA基础小知识_第2张图片楠神专享JAVA基础小知识_第3张图片

你可能感兴趣的:(java基础)