实用类

实用类

只要掌握API文档的应用

类似于操作系统重的文件夹,主要用来存放Java类的。如果没有包,把所有的类放到一个文件夹中。

如果不使用包,缺陷有两处:

  1. 类多了不易管理

  2. 不能有两个名字相同的类

包的关键字

package

包的作用

  1. 简化了Java类

  2. 不同的包中,Java类名可以相同

包的命名规范

单个单词全小写,多个单词,用点(.)隔开,域名的反写(例如:com.baidu.service)

com.yb.dao:持久层代码

com.yb.impl:持久层dao的实现类

com.yb.view:表示层代码

com.yb.biz.student:student模块的业务层代码

com.yb.biz.teacher:teacher模块的业务层代码

com.yb.vo(pojo/entity):代码重的实现类(封装类)

com.yb.tools:本项目所需要的工具类

Java常用包

java.lang:Java核心包(默认)

java.util:系统工具包

java.io:Java输入/输出包

java.lang.reflect:Java反射引用包

java.net:Java网络应用包

java.sql:JDBC操作应用包

导包操作:4种,会其中一种即可(eclipse为例)

  1. 写出包的部分首字母,快捷键alt+/

  2. 完整的包名.类名 形式

  3. 写全类名的形式,用鼠标进行导包

  4. 批量导包(ctrl+shift+o)

实用类的应用

枚举类:一一例举

一般来说,枚举需要大写,中间用逗号隔开,最后一个没有逗号

public enum WEEK {
   Mon,Tus,Wed,Thu,Fri,Sat,Sun
}

实现

 public static void choose(WEEK week){
       switch (week){
           case Mon:
           case Tus:
           case Wed:
           case Thu:
           case Fri:
               System.out.println("工作日,敲代码");
               break;
           case Sat:
           case Sun:
               System.out.println("休息");
               break;
      }
  }

   public static void main(String[] args) {
       choose(WEEK.Mon);
  }

包装类

概念

基本数据类型对应的引用类型

 基本类型包装类
整型 byte,short,int,long Byte,Short,Integer,Long
浮点型 float,double Float,Double
字符型 char Character
布尔型 boolean Boolean

拆箱装箱

装箱:基本数据类型转换为对应的包装类

拆线:包装类转换为对应的基本数据类型

注意:不存在强转,装箱拆箱都是自动的

Character类的应用

方法描述
charValue() 返回此 Character对象的值。
equals(Object obj) 将此对象与指定对象比较。
isDigit(char ch) 确定指定字符是否为数字。
isLetter(char ch) 确定指定字符(Unicode 代码点)是否为字母。
isLowerCase(char ch 确定指定字符是否为小写字母。
isUpperCase(char ch) 确定指定字符是否为大写字母。
toChars(int codePoint) 将指定的字符(Unicode 代码点)转换成其存储在 char 数组中的 UTF-16 表示形式。
toLowerCase(char ch) 使用取自 UnicodeData 文件的大小写映射信息将字符参数转换为小写。
toUpperCase(char ch) 使用取自 UnicodeData 文件的大小写映射信息将字符参数转换为大写。
valueOf(char c) 返回一个表示指定 char 值的 Character 实例。

String类:线程安全,长度不可变

代表字符串

基本类型与String的转换

    String str = "123aaa";
System.out.println(str.valueOf(5).getClass());
System.out.println();
System.out.println(Integer.parseInt(str)+1);
Byte bnum = Byte.valueOf(str);
Short snum = Short.valueOf(str);
System.out.println(Integer.parseInt(str)+1);
String s = "a324";

字符串分割

    String str = "长亭外 古道边 芳草碧连天 晚风拂 柳笛残声 夕阳山外山";
String [] s1 = str.split(" ");
for (int i = 0; i < s1.length; i++) {
        System.out.println(s1[i]);
}

替换指定字符串

    public static void main(String[] args) {
String [] s = "公安,示威,分裂,独立,民主".split(",");
String str = "中国是一个民主发达的国家,在这里生活的人不会像美国一样遭遇示威活动,页不存在独立游行,我为生在中国而自豪";
for (int i = 0; i < s.length; i++) {
str = str.replace(s[i], "**");
}
System.out.println(str);
}

StringBuffer类:线程安全,长度可变

例题:在一段数字种,从最后一位开始,每隔三位,插入一个“,”

        StringBuffer sb = new                                StringBuffer("1351312897");
       for (int i = sb.length()-3; i > 0; i-=3) {
           sb.insert(i,",");
      }
       System.out.println(sb);

StringBuilder:线程不安全,长度可变

System类

1 字段

err:“标准”错误输出流

out:“标准”输出流

in:“标准”输入流

2 方法

方法名作用
exit(int status) 终止当前正在运行的 Java 虚拟机。
gc() 运行垃圾回收器。
currentTimeMillis() 返回与当前 Java 虚拟机关联的唯一 Console 对象(如果有)。

日期操作类

Date类

Date date = new Date();
int year = date.getYear()+1900;
int month = date.getMonth()+1;
int day = date.getDate();
int hour = date.getHours();
int minutes = date.getMinutes();
int seconds = date.getSeconds();
long hm = date.getTime();
System.out.println("下:"+year+"年"+month+"月"+day+"日 "+hour+":"+minutes+":"+seconds);
System.out.println(hm);

 

Calandar类

Calendar c = Calendar.getInstance();
int year = c.get(Calendar.YEAR);
int month = c.get(Calendar.MONTH);
int day = c.get(Calendar.DATE);
int hour = c.get(Calendar.HOUR);
int minute = c.get(Calendar.MINUTE);
int second = c.get(Calendar.SECOND);
int mm = c.get(Calendar.MILLISECOND); // 每秒的当前毫秒值
long hm = c.getTimeInMillis(); // 返回1970年到目前的毫秒数
int d = c.get(Calendar.DAY_OF_WEEK);
System.out.println(d);

 

dateFormat类

SimpleDateFormat类

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd k:mm:ss"); // 格式化标准
Date date = new Date();
String d = sdf.format(date);
System.out.println(d);

 

DecimalFormat类

实例化时格式化

DecimalFormat df1 = new DecimalFormat("#,###.###");
String s1 = df1.format(21314.21356); System.out.println(s1);//21,314.214
       
DecimalFormat df2 = new DecimalFormat("0,000.000");
String s2 = df2.format(32456.32);
System.out.println(s2); //32,456.320
       
DecimalFormat df3 = new DecimalFormat("#,###.000"); String s3 = df3.format(213456.34);
System.out.println(s3); //213,456.340

自定义类格式化

public void format(String pattern,double value) {
DecimalFormat df = null;
df = new DecimalFormat(pattern);
String str = df.format(value);
System.out.println(str);
}
Demo dd = new Demo();
dd.format("0,000.000", 34498574397.43524);

Math类

1 字段

E

PI

2 方法

方法名作用
abs(int a) 返回 int 值的绝对值。
ceil(double a) 返回最小的(最接近负无穷大)double 值,该值大于等于参数,并等于某个整数。
floor(double a) 返回最大的(最接近正无穷大)double 值,该值小于等于参数,并等于某个整数。
max(int a, int b 返回两个 int 值中较大的一个。
min(int a, int b) 返回两个 int 值中较小的一个。
pow(double a, double b) 返回第一个参数的第二个参数次幂的值。
random() 返回带正号的 double 值,该值大于等于 0.0 且小于 1.0。
rint(double a) 返回最接近参数并等于某一整数的 double 值。
round(double a) 返回最接近参数的 long
sqrt(double a) 返回正确舍入的 double 值的正平方根。
System.out.println(Math.pow(5, 3)); //5的3次方 125.0
System.out.println(Math.sqrt(36));  //36的平方根 6.0
System.out.println((int)(Math.random()*(10000-1000)+1000)); //求1000-10000的随机数
System.out.println(Math.round(6.49)); // 四舍五入(小数点后一位)
System.out.println(Math.rint(6.5)); // 接近参数并等于某一整数的 double 值(当小数点后一位为5时,符合奇变偶不变) //输出7.0
System.out.println(Math.rint(5.5)); //输出6.0

正则表达式

概念

正则表达式(regular expression)描述了一种字符串匹配的模式(pattern),可以用来检查一个串是否含有某种子串、将匹配的子串替换或者从某个串中取出符合某个条件的子串等。

常用匹配模式

  1. 只允许英文字母、数字、下划线、英文句号以及中划线组成:^[a-zA-Z0-9-]+@[a-zA-Z0-9-]+(.[a-zA-Z0-9_-]+)+$

    String regex = "^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)+$";
    String email = "ybybyb6-1206@gmail.com";
    System.out.println(email.matches(regex)); //true

     

  2. 名称允许汉字、字母、数字,域名只允许英文域名:^[A-Za-z0-9\u4e00-\u9fa5]+@[a-zA-Z0-9-]+(.[a-zA-Z0-9-]+)+$

String regex = "^[A-Za-z0-9\\u4e00-\\u9fa5]+@[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)+$";
String email = "好人1206ybybyb6@lenovo.com.cn";
System.out.println(email.matches(regex));  //true

 

posted @ 2021-12-07 11:12  ybybyb  阅读(96)  评论(0)    收藏  举报