1.什么是枚举类?

访问修饰符 Enum 枚举名称{}其应用上可以看做一个类去定义,如果枚举里有方法,定义的枚举常量要以':'结尾

2.应用枚举的好处?

枚举限制了范围,更加安全,如果要大量定义常量用public final static A=1;

定义起来太复杂,用枚举简单多,代码简洁 public void day(Day(枚举类型) day), public void day(int day),枚举类型传递的参数更加可控,而int类型太不可控

3.什么是包装类?

所谓的包装类其实就是对基本数据类型进行装箱操作,java8种基本数据类型对应包装类:byte-Byte,short-Short ,int-integer,long-Long,char-Character,boolean-Bolean,float-Float,dobule-Double只有字符型char和整形int对应的包装类不一样。

4.为什么会有包装类?

把基本数据类型转换成包装类,使其功能更加强大,例如每个包装类里都有求最大值和最小值得方法,并且java开发思想面向对象编程。

5.基本数据转换成包装类的方法? 包装类的构造函数:Integer integer(100); Integer integer(“”100“”);字符包装类Character的基本数据类型只能通过一种构造方法Character character(‘a’); 还可以用包装类提供的value(形参)重载方法去转换,字符型的value(‘ ’)只有一种,其余有3种。

6.String类方法

String类有很多方法,这里介绍几个常用的int indexOf(int ch),int indexOf(String value),int  lastIndexOf(int ch),String trim(),String subString(int  index) String concat(String str),split(用什么分割,分割多少份)返回用相应类型数组接收。

7.String类和StringBuffer类比较

字符串链接时StringBuffer效率远远高于String类,因为StringBuffer类append()方法在内存中已开辟的空间追加字符串,而不是像String那样重新开辟新的内存空间。insert(位置,参数)和append方法是StringBuffer类特有的方法。

枚举

枚举类是一种特殊的类,里面的值全部都是静态常量,每一个枚举值都相当于一个本类对象,
只不过,调用对象的toString方法打印的是对象名。如:

enum Color{
  BLUE,RED,YELLOW,GREEN;
}

实际上,每一个枚举值都相当于一个本类对象,所以每声明一个枚举值,相当于执行以下代码:
  public static final BLUE=new Color();
  public static final RED=new Color();
  public static final YELLOW=new Color();
  public static final GREEN=new Color();

注意:①在枚举类中,枚举值必须放在第一行,其他所有代码,必须放在枚举值的后面。

   ②枚举类中的构造函数,只能是私有化的,在声明枚举值时,自动调用。如:

enum Color{
BLUE,RED,YELLOW,GREEN,BLACK; private Color(){
System.out.println("hahahhaha");
}
}

实用类

Date类的常用方法

1、Date空参构造,取到当前时间
setTime():传入一个长整型,重新设置date时间

2、传入一个long类型的时间戳,取到指定时间
date.getTime(),取到一个时间的时间戳,从0时区,1970年1月1日0:0:0到当前时间的毫秒数

3、compareTo(date2):前面>参数,返回1;前面<参数,返回-1;前面=参数 返回0
equals():比对两个时间是否相等,返回true或false

4、before():检测一个时间是不是在指定时间之前,返回true或false
after():检测一个时间是不是在指定时间之后,返回true或false

代码实例:

Date date=new Date();
System.out.println(date);
//运行结果:Sun Apr 15 08:34:05 CST 2018
date.setTime(1000*60*60*24);
System.out.println(date);
//运行结果:Fri Jan 02 08:00:00 CST 1970 Date date2=new Date(date.getTime()-1000*60*60);
System.out.println(date2);
//运行结果:Fri Jan 02 07:00:00 CST 1970 System.out.println(date.compareTo(date2));
//运行结果:1 System.out.println(date.before(date2));
//运行结果:false

SimpleDateFormat:对日期格式进行格式化

实例化对象时,传入格式化参数,用字母代表对应部分

字母 日期或时间元素 表示 示例 
y 年 Year 1996; 96 
M 年中的月份 Month July; Jul; 07 
d 月份中的天数 Number 10 
E 星期中的天数 Text Tuesday; Tue 
H 一天中的小时数(0-23) Number 0 
h am/pm 中的小时数(1-12) Number 12 
m 小时中的分钟数 Number 30 
s 分钟中的秒数 Number 55

1、format():用于传入一个Date类型的参数,并返回格式化之后的字符串

2、parse(String text, ParsePosition pos) 从字符串:中解析文本以产生一个 Date 。 
将字符串中的时间转成Date类型,要求传入的字符串格式,必须与实例化时的格式完全一致

3、toPattern():返回描述此日期格式的模式字符串。

实例代码:

SimpleDateFormat sdf=new SimpleDateFormat("yyyy年M月d日hh:mm:ss.SSS E");
String s=sdf.format(date);
System.out.println(s);
//运行结果:2018年4月15日08:35:41.492 星期日 System.out.println(sdf.toPattern());
//运行结果:yyyy年M月d日hh:mm:ss.SSS E

Calendar类的常用方法

1、Calendar日历类是一个抽象类,不能直接通过new拿到对象,必须使用Calendar.getInstance();拿到

Calendar calendar=Calendar.getInstance();
System.out.println(calendar); //运行结果:java.util.GregorianCalendar[time=1523752945958,areFieldsSet=true,areAllFieldsSet=true,lenient=true,zone=sun.util.calendar.ZoneInfo[id="Asia/Shanghai",offset=28800000,dstSavings=0,useDaylight=false,transitions=19,lastRule=null],firstDayOfWeek=1,minimalDaysInFirstWeek=1,ERA=1,YEAR=2018,MONTH=3,WEEK_OF_YEAR=16,WEEK_OF_MONTH=3,DAY_OF_MONTH=15,DAY_OF_YEAR=105,DAY_OF_WEEK=1,DAY_OF_WEEK_IN_MONTH=3,AM_PM=0,HOUR=8,HOUR_OF_DAY=8,MINUTE=42,SECOND=25,MILLISECOND=958,ZONE_OFFSET=28800000,DST_OFFSET=0]

2、根据calendarde提供的常量,获得指定字段

System.out.println(calendar.get(calendar.DAY_OF_MONTH));

3、getTime()返回一个日期对象

SimpleDateFormat sdf=new SimpleDateFormat("yyyy年M月d日hh:mm:ss.SSS E");
Date date4=calendar.getTime();
System.out.println(sdf.format(date4));
//运行结果:2018年4月15日10:11:36.846 星期日 //输出今天是周几
String[] arr={"星期天","星期一","星期二","星期三","星期四","星期五","星期六"};
int i=calendar.get(calendar.DAY_OF_WEEK)-1;
System.out.println(arr[i]);

Math类的常用方法

1、abs(double a) 
返回值为 double绝对值。 
2、cbrt(double a) 
返回 double值的多维数据集根。 
3、sqrt(double a) 
返回的正确舍入正平方根 double值。 
4、pow(double a, double b) 
将第一个参数的值返回到第二个参数的幂。 a的b次方
5、floor(double a) 
返回小于指定浮点数的第一个double值,等于一个数学整数。 
6、ceil(double a) 
返回大于指定浮点数的第一个 double值,等于一个数学整数。 
7、round(a) (常用)进行四舍五入,如果传入double返回long,传入float返回int
8.rint(double a) 
返回与参数最接近值的 double值,并且等于数学整数。 如:10.5与10和11同样接近,返回偶数10
9、random() 
返回值为 double值为正号,大于等于 0.0 ,小于 1.0 。

代码实例:

System.out.println(Math.PI);
//运行结果:3.141592653589793
System.out.println(Math.abs(-10));
//运行结果:10
System.out.println(Math.cbrt(27));
//运行结果:3.0
System.out.println(Math.sqrt(9));
//运行结果:3.0
System.out.println(Math.max(19,29));
System.out.println(Math.min(19,29));
//运行结果:29
//运行结果:19
System.out.println(Math.pow(10,3));
//运行结果:1000.0
System.out.println(Math.floor(-10.5));
//运行结果:-11.0
System.out.println(Math.ceil(-10.5));
//运行结果:-10.0
System.out.println(Math.round(11.2));
System.out.println(Math.round(11.8));
System.out.println(Math.round(10.34567*Math.pow(10, 3))/Math.pow(10, 3));
//运行结果:11
//运行结果:12
//运行结果:10.346
System.out.println(Math.random());
//运行结果:0.6991040857245453

Random类的常用方法

1、两种构造:
① 空参
② 传入一个种子数,只要种子数相同,在相同次数取到的数肯定相同,伪随机数

2、System.currentTimeMillis()获得当前时间戳作为种子数

Date date=new Date();
System.out.println(date.getTime());
System.out.println(System.currentTimeMillis());
Random ran=new Random(System.currentTimeMillis());

3、随机取数

//98到115取数(从0-7取随机数再加98)
Random ran2=new Random();
//0-7取随机数
System.out.println(ran2.nextInt(8));
System.out.println(ran2.nextInt(8)+98); //生成两位随机数(10-99)
System.out.println(ran2.nextInt(90)+10);

String 类的常用方法

1、length():返回字符串的长度。
注意:length()是一个方法,使用时注意不能掉()

2、s1.equals(s2):判断字符串是否相等;

  [==和equals的区别]
  .equals()的比对原理,是判断两个字符串的每一个字符是否相等;
  ==的对比原理,是判断两个字符串中的存储地址是否相等。

3、s1.equalsIgnoreCase(s2):忽略大小写比对;
  s1.toLowerCase():将所有字符都转化为小写
  s2.toUpperCase():将所有字符都装化为大写

4、连接字符串:
①使用加号连接
②使用s1.concat(s2),将s2连接到s1的后面,并返回一个新字符串

5、indexOf("c"):在字符串中查找指定的字符或子串第一次出现的位置,并返回其下标,如果没有找到返回-1;
  可以接受字符串、字符、整数类型的参数,如果是传入整数,将根据ASCII码自动转为字符(A-65 a-97);
  lastIndexOf():在字符串中查找指定的字符或子串最后一次出现的位置,并返回其下标,如果没有找到返回-1;

6、substring():截取字符串的指定位置,返回一个新的子串;
①传入一个参数,表示起始下标,将从此下标开始,一直截到字符串最后;
②传入两个参数,表示起始下标和结束下标,为左闭右开区间,包含起始不包含结束

7、trim():去掉字符串两端的空格(中间的空格不能去掉)

8、split(""):传入指定字符,将字符串分割为多个子串,返回一个字符串类型的数组
  如果传入一个空字符串,则将原字符串的每一个字符都进行分割。
  split(" ",30):第二个参数,传入一个参数,表示将当前字符串分为几部分;
  如果传入的整数,小于原来分割的总部分,则剩余的区域将不再分割;

StringBuffer类的常用方法

StringBuffer是String的增强版
StringBuffer与String的最大区别在于:StringBuffer是可变可追加的,而String一旦声明不可改变,不能插入;

1、toString():将StringBuffer类型,转成String类型。
但在输出时,可以不用转换,将自动进行转换。

2、append():在原字符串的最后追加新的字符
①原字符串会被直接改变,同时还会将追加之后的字符串返回
②append可以接受各种类型的参数,会自动转成字符串后追加到原字符串最后。

3、delete():传入两个下标,表示删除这两个下标之间的字符,左闭右开区间。

4、insert(3, "abc"):在原字符串的指定位置插入新的子串
新的子串可以是任何数据类型,其他数据类型会自动转为字符串

  • Java中的包装类

对基本数据类型都非常熟悉,例如 int、float、double、boolean、char 等。基本数据类型是不具备对象的特性的,比如基本类型不能调用方法、功能简单。。。,为了让基本数据类型也具备对象的特性, Java 为每个基本数据类型都提供了一个包装类,这样我们就可以像操作对象那样来操作基本数据类型。

基本类型和包装类之间的对应关系:

包装类主要提供了两大类方法:

1. 将本类型和其他基本类型进行转换的方法

2. 将字符串和本类型及包装类互相转换的方法

Integer 包装类为例,来看下包装类的特性。

Integer 包装类的构造方法:

java实用类总结的更多相关文章

  1. java 实用类

                                                java  实用类 1.File类为管理文件和目录提供了方法,其对象表示一个文件或者目录.它提供了若干方法对文件 ...

  2. 【学习笔记】Java实用类:枚举(Enum)

    Java API(Java Application Programming Interface)Java应用程序编程接口... 实用类:Java API提供了几个常用包: 1.java.lang:编写 ...

  3. Java实用类

    //String类常用方法 public int length()//获取String对象的字符序列的长度 n=s.length(); public boolean equals(String s)/ ...

  4. Java实用类-Enum(枚举)

    1. 历史 ​ 在 JDK 1.5 之前没有枚举类型,那时候一般用接口常量来替代(例如,public static final String male ).JKD1.5之后使用 Java 枚举类型 e ...

  5. Java实用类(五) -Math类和指定范围的随机数

    1.Math类 java.lang.Math类提供了常用的数学运算方法和两个静态常量E(自然对数的底数) 和PI(圆周率) // 绝对值 System.out.println(Math.abs(-3. ...

  6. JavaWeb初级进阶高级学习方向计划

    阶段1 语言基础 课程一.Java负基础扫盲课 1.初识Java 本课程从java开发环境配置开始,讲解了java语法基础 .类和面向对象.面向对象编程三大特性:封装.继承.多态.建议零基础学员从本课 ...

  7. Spark案例分析

    一.需求:计算网页访问量前三名 import org.apache.spark.rdd.RDD import org.apache.spark.{SparkConf, SparkContext} /* ...

  8. java常用实用类

    1.String类概念 java程序中默认导入java.lang包的,像java.lang.String等String类属于final类,用户不能扩展String类,String 类没有子类.Stri ...

  9. Java高级特性 第2节 java中常用的实用类(1)

    一.Java API Java API即Java应用程序编程接口,他是运行库的集合,预先定义了一些接口和类,程序员可以直接调用:此外也特指API的说明文档,也称帮助文档. Java中常用的包: jav ...

随机推荐

  1. Tido 习题-二叉树-最高分

    题目描述 老师想知道从某某同学到某某同学当中,分数最高的是多少.现在请你编程模拟老师的询问.当然,老师有时候需要更新某位同学的成绩. 输入 输入包含多组测试数据.每组输入第一行是两个正整数N和M(0& ...

  2. spring boot + druid + mybatis + atomikos 多数据源配置 并支持分布式事务

    文章目录 一.综述 1.1 项目说明 1.2 项目结构 二.配置多数据源并支持分布式事务 2.1 导入基本依赖 2.2 在yml中配置多数据源信息 2.3 进行多数据源的配置 三.整合结果测试 3.1 ...

  3. 【记录】Field required a single bean, but 2 were found:

    重构遇到个小问题,记录下: 错误信息: *************************** APPLICATION FAILED TO START ************************ ...

  4. 【朝花夕拾】Android自定义View篇之(八)多点触控(上)MotionEvent简介

    前言 在前面的文章中,介绍了不少触摸相关的知识,但都是基于单点触控的,即一次只用一根手指.但是在实际使用App中,常常是多根手指同时操作,这就需要用到多点触控相关的知识了.多点触控是在Android2 ...

  5. 02_javaSE面试题:单例设计模式

    还记得很多年前,面试就让在白板上写个单例模式,当时技术渣渣,还写的是class A.面试官还说,你就不能写个Singleton. 面试题 编程题:写一个Singleton示例 解析 什么是Single ...

  6. RabbitMQ windows 安装后 此时不应有 \RabbitMQ。

    在安装过程中,如果细心实际上在安装的细节显示starting Service后就已经提示这个问题,实际上就是没有注册到RabbitMQ这个服务. 在研究了很久之后才发现原来是安装路径的问题,原先是安装 ...

  7. WordPress教程之如何入门WordPress

    这篇文章将介绍如何设置 WordPress,并自定义其基本功能.WordPress 的安装包相对较小(低于 10 MB),非常易于安装和管理.为了托管自己的网站,你可以获得几个不同的选项. 你可以通过 ...

  8. 基于SpringCloud的Microservices架构实战案例-配置文件属性内容加解密

    使用过SpringBoot配置文件的朋友都知道,资源文件中的内容通常情况下是明文显示,安全性就比较低一些.打开application.properties或application.yml,比如mysq ...

  9. 使用cmd打开磁盘目录和文件

    例如: 1.进入e盘 2.查看E盘下所有文件 3.进入指定文件夹

  10. Hash的应用2

    代码: #include <stdio.h> #define OFFSET 500000//偏移量 ];//记录每个数是否出现,出现为1,不出现为0 int main(){ int n,m ...