目录
5.JSON.parseObject()和JSON.toJSONString():
1.数据类型定义和转换
1.1 BigDecimal :
BigDecimal b1=New BigDecimal(2.2222) //不建议 会造成精度丢失
BigDecimal b2=New BigDecimal(2.2222) //不建议 虽然不造成精度丢失
BigDecimal b3=New BigDecimal(“2.2222”) //建议 不会造成精度丢失
(1)BigDecimal .valueOf(数据类型 数据):将参数数据类型转换为BigDecimal类型数据
(2)BigDecimal bigDecimal =BigDecimal .ZERO 创建一个数值为0的BigDecimal 数据
BigDecimal b4=New BigDecimal(“1.2323”).setScale(2,BigDecimal.ROUND_UP)//2.23进位处理
setScale(数值,参数):
数值:保留几位小数
参数(四种):ROUND_UP:进位处理 不管后边数值大小
ROUND_DOWN:直接删除多余的数值后的数据
ROUND_HALF_UP: 四舍五入 2.35变2.4 如果是5 向上
ROUND_HALF_DOWN: 四舍五入 2.35变2.3 是5向下
(3)类型转换:定义中可以将String、double转换为BigDecimal型
BigDecimal转换为int,float,double,long
a.IntValue() a.floatValue() a.doubleValue() a.longValue()
(4)加减乘除运算
加:add 减:subtract 乘:multiply 除法:div
BigDecimal a= new BigDecimal() ; BigDecimal b = new BigDecimal();
a.add(b) a.subtract(b) a.multiply(b) a.divide(b)
1.2 Integer:
Integer a=new Integer(int value);
Integer a=new Integer(String value);
(1)在定义时就可以将int、String类型转换为Integer
(2)String类型转换为Integer类型 Integer.valueOf(“数据”)、Integer.getInteger(“数据”) (3)String、Integer类型转换为Int类型 Integer.parseInt(“”)、a.intValue()
2.String
2.1 replace()、repalceAll()、replaceFirst()
相同点:replace()和repalceAll()都是将字符或字符串替换,replace()参数是char和CharSequence,即就是字符串;replaceAll参数是regex,是基于规则表达式替换;replaceFirst()仅将第一次出现的字符串进行替换
2.2 String.toLowerCase()和toUpperCase():
String.toLowerCase()将字符串中的英文转换为小写
String.toUpperCase():将字符串中英文转换为大写
2.3 contains():
返回值为true或false,当且仅当此字符串包含指定的char值序列
Eg:str1.contains(str2),字符串str1中包含字符串str2,返回值为true;不包含则返回值为false
注:执行替换操作后,源字符串的内容是没有发生改变的
2.4 equals()和equalsIgnoreCase()
说明:比较两个字符串是否相等。
equalsIgnoreCase()和equals()区别:
equals严格区分大小写;equalsIgnoreCase忽略大小写
2.5 Substring
str =str.Substring:(int startIndex);截取掉str从首字母起长度为startIndex的字符串,将剩余字符串赋值给str
str=str.substring(int startIndex,int endIndex);截取str中从startIndex开始至endIndex结束时的字符串,并将其赋值给str;
2.6 Compare()字符串比较:
如果参数字符串等于字符串,则返回值0
如果此字符串小于字符串参数,则返回一个小于0的值
如果此字符串发育字符串参数,则返回一个大于0的值
1).对于单个字符,返还两个字符的asc码的差值。
2).参与比较的两个字符串如果首字符相同,则比较下一个字符,直到有不同的为止,返回该不同的字符的asc码差值 。
3).两字符串长度不一,参与比较的两个字符串如果首字符相同,则比较下一个字符,直到有不同的为止,返回该不同的字符的asc码差值 。
注意:int类型不可直接使用compareTo方法,需要使用String.ValueOf();方法转化为字符串之后进行比较。
2.7 split():字符串进行分割
需要转义的特殊字符,$、|、(、)、[ 、{、^、?、*、+、\\\
eg:str.spit(“\\.”) str.spint(“\\$”) str.spirt(“\\|”) str.spirt(“\\)”)
2.8 Pattern.compile(String regex,int flag):提取字符串中指定的字符
参数:regex:表示定义的规则
flag:表示设置的参数类型,包含以下几种情况
1)Pattern.CASE_INSENSITIVE:默认情况下,大小写不敏感的匹配只适用于US_ASCI字符集。让表达式忽略大小写进行匹配
2)Pattern.COMMENTS:此种模式下,匹配时会忽略表达式中空格字符(表达式的空格、tab、回车),注释从#开始,一直到这行结束
3)Pattren.UNIX_LINES():此种模式下,只有’\n’才被认作一行的中止,并且与’.’,’^’以及’$’进行匹配
4)Pattren.MULTILINE:此种模式下,上箭头和单引号分别匹配一行的开始和结束。此外,’^’仍然匹配字符串的开始,’^’也匹配字符串的结束。默认情况下,这两个表达式仅仅匹配自负床的开始和结束
5)Pattren.DOTALL:此种模式下,表达式’.’可以匹配任意字符,包括一行的结束符。默认情况下,表达式’.’不匹配行的结束符
eg:
//需要截取的字符串
String splitStr = "[user:name] = select name from user";
// 定义规则
String pattern = "(\\[+)(\\w+)\\:(\\w+)(\\]+)";
//Pattern.compile函数
Matcher matcher = Pattern.compile(pattern, Pattern.CASE_INSENSITIVE).matcher(splitStr);
while (matcher.find()) { //表示往下遍历
//截取出来的字符串 [user:name]
String allcon = matcher.group(0);
System.out.println("allcon匹配的结果为"+allcon);
//截取的开始位置 [
String tableJoin1 = matcher.group(1);
System.out.println("tableJoin1匹配的结果为"+tableJoin1);
//截取出来的表名 user
String tableName = matcher.group(2);
System.out.println("tableName匹配的结果为"+tableName);
//截取出来的字段名 name
String filed = matcher.group(3);
System.out.println("filed匹配的结果为"+filed);
//截取的结束位置 ]
String tableJoin4 = matcher.group(4);
System.out.println("tableJoin4匹配的结果为"+tableJoin4);
}结果如下:
注:比如正则(\\[+)表示以[开头匹配;正则(\\w+)表示参数,两个加在一起(\\[+)(\\w+)表示以[开头的字符串
2.9 String.format():字符串格式化
重载方式:1.format(String format,Object...args)新字符使用本地语言化境,制定字符串格式和参数生成格式化的新字符串
2.10format(Locale locale,String format,Object...args)使用指定的语言环境,指定字符串格式和参数生成格式化的字符串
常用的字符类型和整数类型的格式化
转换符 | 详细说明 | 示例 |
%s | 字符串类型 | “喜欢请收藏” |
%c | 字符类型 | ‘m’ |
%b | 布尔类型 | true |
%d | 整数类型(十进制) | 88 |
%x | 整数类型(十六进制) | FF |
%o | 整数类型(八进制) | 77 |
%f | 浮点类型 | 8.888 |
%a | 十六进制浮点类型 | FF.35AE |
%e | 指数类型 | 9.38e+5 |
%g | 通用浮点类型(f和e类型中较短的) | 不举例(基本用不到) |
%h | 散列码 | 不举例(基本用不到) |
%% | 百分比类型 | %(%特殊字符%%才能显示%) |
%n | 换行符 | 不举例(基本用不到) |
%tx | 日期与时间类型(x代表不同的日期与时间转换符) | 不举例(基本用不到) |
eg:
String str=null;
str=String.format("Hi,%s", "小超");
System.out.println(str);
str=String.format("Hi,%s %s %s", "小超","是个","大帅哥");
System.out.println(str);
System.out.printf("字母c的大写是:%c %n", 'C');
System.out.printf("布尔结果是:%b %n", "小超".equal("帅哥"));
System.out.printf("100的一半是:%d %n", 100/2);
System.out.printf("100的16进制数是:%x %n", 100);
System.out.printf("100的8进制数是:%o %n", 100);
System.out.printf("50元的书打8.5折扣是:%f 元%n", 50*0.85);
System.out.printf("上面价格的16进制数是:%a %n", 50*0.85);
System.out.printf("上面价格的指数表示:%e %n", 50*0.85);
System.out.printf("上面价格的指数和浮点数结果的长度较短的是:%g %n", 50*0.85);
System.out.printf("上面的折扣是%d%% %n", 85);
System.out.printf("字母A的散列码是:%h %n", 'A');
显示结果:
Hi,小超
Hi,小超 是个 大帅哥
字母c的大写是:C
布尔的结果是:false
100的一半是:50
100的16进制数是:64
100的8进制数是:144
50元的书打8.5折扣是:42.500000 元
上面价格的16进制数是:0x1.54p5
上面价格的指数表示:4.250000e+01
上面价格的指数和浮点数结果的长度较短的是:42.5000
上面的折扣是85%
字母A的散列码是:41
3.分页
PageHelper
PageHelper.startPage(int pageNo,int pageSize);
调用service或Mapper获得list集
PageInfo<entity> pageinfo = new PageInfo(list);
PageUtil<eneity> page = New PageUtils(pageinfo.getlist(),pageinfo.getTotal(),源数据.getPageSize(),源数据.getPageNo);
Eg:List<PTradeRecordPo> pTradeRecordList = tradeMoneySelectMapper.tradePage(pTradeRecordPagePo);
PageInfo<PTradeRecord> pageInfo = new PageInfo(pTradeRecordList);
PageUtil<PTradeRecord> page = new PageUtil(pageInfo.getList(),pageInfo.getTotal(),
4.日期相关
- :获取昨天日期
Calendar cal = Calendar.getInstance();
cal.add(Calendar.DATE,-1);
String yesterDay = new SimpleDateFormat("yyyy-MM-dd HH-mm-ss").format(cal.getTime());
5.JSON.parseObject()和JSON.toJSONString():
JSON.parseObject:将json字符串转换为对象 JSON.toJSONString:将对象转换为json字符串
eg:
@Data
public class Staff{
private String name;
private Integer age;
private String sex;
private Date birthday;
}
//将json字符串转化为对象
String jsonString = "{name:'Antony',age:'12',sex:'male',telephone:'88888'}";
Staff staff = JSON.parseObject(jsonString, Staff.class);
System.out.println(staff.toString());
//将对象转化为json字符串
JSON.toJSONString(Staff);
输出结果:
Staff{name=’Antony’,age=12,sex=’male’,birthday=null}
{”name”:”Antony”,“age”:”12”,”sex”:”male”}
6.Session三种失效方式
(1) java代码实现(时间单位:秒)
session.setMaxInactiveInterval(600)
设置为-1,则用不失效 ,另外注意这里时间是根据服务器来计算的。在测试的时候修改的是服务器的时间来测试,而不是客户端。
(2) Web.xml文件中(时间单位是:分钟)
<session-config>
<session-timeout>60</session-timeout>
</session-config>
(3) Tomcat中设置
可以在tomcat目录下conf/web.xml中找到<session-config>元素,tomcat默认设置是30分钟,只要修改这个值就可以了。
优先级:(1)>(2)>(3)