Java基础

这篇博客详细介绍了Java的基础知识,包括数据类型定义与转换,尤其是BigDecimal和Integer的使用;String的操作如replace()、toLowerCase()和toUpperCase();分页处理的PageHelper库的使用;日期处理;JSON对象的转化;以及Session的三种失效方式。内容覆盖了Java编程的重要概念,是学习和巩固Java基础知识的好资料。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

1.数据类型定义和转换

1.1 BigDecimal :

1.2 Integer:

2.String

3.分页 

4.日期相关

5.JSON.parseObject()和JSON.toJSONString():

6.Session三种失效方式


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.日期相关

  1. :获取昨天日期

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)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值