常用类(javaSE版本中内置的一系列功能)
字符串家族
了解字符串的原理和使用字符串类进行字符串的解析
字符串需要解析?
web协议,http协议在网络上跑的是字符串,可以接受通过字符串获取的数据
解析后可以将代码(字符串)进行执行
经常会看到代码标记已过时(不一定就不能用)
此段代码使用是有风险的,可以造成系统故障
此代码已经有新的替代者替代,所以可以放弃使用
String
String没有子类,不能被继承,不能被final修饰
构造方法
String()会实例化一个内容为空(不是null)的字符串
String(String original) 会根据给定的字符串对象,创建相同内容的字符串对象。
String(char[] value) 根据给定的字符数组创建字符串
String(byte[] byte) 用默认字符集,将字节数组转换为字符串
String(byte[] byte,String charsetName) 用指定的字符,将字节数组转换为字符串
常用方法
byte[] getBytes() 使用平台的默认字符集将此 String 编码为 byte 序列,并将结果存储到一个新的 byte 数组中。
byte[] getBytes(String charsetName)使用平台的指定的字符集将此 String 编码为 byte 序列,并将结果存储到一个新的 byte 数组中。
修改字符串
char charAt(int index)返回索引处的char值
String concat(String str) 将指定字符串连接到此字符串的结尾。返回拼接后的字符串,而不改变原先的字符串
String 注: 字符串中的方法只会生成一个新的字符串而原先的字符串不变,由此称字符串为常量
replace(CharSequence target, CharSequence replacement):将字符串的target表示的字符串更改为replacement表示的字符串,不改变原先的字符串,只返回改变后的新字符串
CharSequence target:被替换的字符串
CharSequence:新的字符串
String substring(int beginIndex) 取子字符串,beginIndex开始获取到字符串的结尾,beginIndex从0开始,返回一个新的字符串,它是此字符串的一个子字符串。
String substring(int beginIndex, int endIndex)获取字符串从beginIndex开始到 endIndex的前一个字符,当endIndex减去1超出了索引则会抛出下标越界, 当beginIndex为负数则会抛出下标越界,返回一个新的字符串,它是此字符串的一个子字符串
查询字符串
char charAt(int index) :返回指定索引处的 char 值
int indexOf(String str) :返回指定字符串在此字符串中第一次出现处的索引。
int lastIndexOf(String str) :返回指定字符在此字符串中最后一次出现处的索引 (没有找到指定的字符时 就会返回-1)
boolean startsWith(String prefix) :测试此字符串是否以指定的前缀开始
boolean endsWith(String suffix) :测试此字符串是否以指定的后缀结束(需要区分大小写 并 需要完全匹配才会返回true)
用于判断文件类型
可以判断是否符合设计标准
String toLowerCase() : 使用默认语言环境的规则将此 String 中的所有字符都转换为小写
String toUpperCase() :使用默认语言环境的规则将此 String 中的所有字符都转换为大写。
String trim() : 返回字符串的副本,忽略前导空白和尾部空白。 \t \n 和" "空格,不会删除字符中的空白
String[] split(String regex) :根据给定正则表达式的匹配拆分此字符串
String 会生成常量
    new String().concat("456");            
    字符串的比较使用equals方法
    常量在前 变量在后

Stirng str1 =  new String("abc"); 
    
    "abc".equals(str1); // 字符串的内容
可变字符串(StringBuffer|StringBuilder)
改变字符串的方法会将原字符串改变,所以称StringBuffer | Builder为可变字符串
StringBuffer: 可变字符序列(类似于String的字符串缓冲区)
StringBuffer append(String str) :将指定的字符串追加到此字符序列的末尾。 一般用来取代+字符串连接符使用。
StringBuffer replace(int start, int end, String str):从下标start开始(包含start索引位置)到 下标end结束(不包括end索引位置)的字符 用 str 替换使用给定 String 中的字符替换此序列的子字符串中的字符。

StringBuffer str1=new StringBuffer("abc");
str1.append("def");
str1.append("我是你爹");
System.out.println(str1);
StringBuffer insert(int offset, String str) :将str插入到offset指定的下标位置,原位置上如果有字符则向后移动。
"abcde" 在 索引 2 的位置上插入"123"
    结果:"ab123cde"    
StringBuffer delete(int start, int end) :删除从下标start开始(包含start索引位置)到 下标end结束(不包括end索引位置)的字符
StringBuffer deleteCharAt(int index) :删除index表示的索引位置上的字符
toString():返回StringBuffer缓存的字符串(返回一个和StringBuffer内容一样的String类型对象)
StringBuffer | StringBuilder 两者的区别:
StringBuffer : 线程安全,但速度相对慢 (一般情况使用)
StringBuilder: 不保证线程安全,但速度相对快一点
日期家族
java.util.Date 类: 用于存放日期数据的类
SimpleDateFormat类:用于日期的格式化输出
Calendar类:操作日期
Date类
毫秒: 1000毫秒 == 1秒
存放的是1970 年 1 月 1 日 00:00:00 GMT到当前的毫秒数
构造方法:
Date()
分配 Date 对象并初始化此对象,以表示分配它的时间(精确到毫秒)
Date(long date) :分配 Date 对象并初始化此对象,以表示自从标准基准时间(称为“历(epoch)”,即 1970 年 1 月 1 日 00:00:00 GMT)以来的指定毫秒数
普通方法
d.after(Date date);
d是否在date之后,参数中的是参考时间
d.before(Date date);
d是否在date之前,参数中的是参考时间。
SimpleDateFormat类: 用于日期的格式化输出
如何从时间对象转换为字符串将具有特定格式的字符串转换为时间对象
默认无参构造方法:
Date d=new Date();
SimpleDateFormat sdf= new SimpleDateFormat();//()里面可以加"M" "Y"
System.out.println(sdf.format(d));
//21-5-10 上午9:31
//两位计年法 年-月-日  12小时时:分
public SimpleDateFormat(String pattern)会根据给定的模式格式化时间
pattern(大小写不能混写,否则系统会认为是两个年字段)

y | Y 代表某一年 (用4位计年法)
yy | YY 代表某一年 (用2位计年法)

M 使用1位计数法 在个数月的情况下不补前导0
MM 使用2位计数法 在个数月的情况下补前导0
MMM 使用本地化的月份缩写单词表示
MMMM 使用本地化的月份完整单词表示
D 代表的是一年中的某一天
d 代表的是一月中的某一天
E 一周的第几天(周几)
EEEE 周几的完整形式
H 一天中的第几个小时0-23
h 1-12 分上下午
a Am/pm 标记
m 一个小时中的分钟数
s 一分钟中的秒数
S 一秒钟中的毫秒数
String format(Date d)
将d根据给定的模式转入字符串
Date parse(String s)
将s根据给定的模式转为日期类型
Calendar 类 : 操作日期
通过Calendar.getInstance();
获取日历类的实例getInstance是静态方法。
int get(int field) 返回给定日历字段的值,field是需要获取的字符的参数
Calender calender=Calender.getInstance();
int month=calender.get(calender.MONTH);
// Calendar.YEAR 获取的是年
// Calendar.MONTH 获取的是月(一月从0开始)
// Calendar.DATE | DAY_OF_MONTH 获取的是一个月中的某一天
// Calendar.DAY_OF_WEEK 获取的是一周中的第几天 周日为1
// Calendar.HOUR_OF_DAY 获取一天中的某一个小时(注意时区问题)
// Calendar.MINUTE 获取一小时中的某一分钟
// Calendar.SECOND 获取一分钟的某一秒
void set(int field, int value) 将时间中的字段(field)设置为给定得值(value)
void add(int field, int amount) 增加或减少某个字段上的值,amount 如果为正值则是增加时间,如果为负值则为减少时间,如果设置到某个字段的最大值,则会进行时间进位
void roll(int field, boolean up) 在给定的时间字段上添加或减去(上/下)单个时间单元,不更改更大的字段。up如果为true则为向上设置 向上设置是+1操作
void roll(int field, int amount) 向指定日历字段添加指定(有符号的)时间量,不更改更大的字段。
int getActualMaximum(int field)给出字段的可能最大值。比如5月的最大值是31,润2月的最大值是29
int getActualMinimum(int field) 给出字段的可能最小值
int getMaximum(int field) 给出本字段的最大值, 不是本字段实际的最后一个时间值,而是全部的最大值月的最大值是31,不区分是大月还是小月
String getDisplayName(int field, int style, Locale locale)返回字段的字符串表现形式,style Calendar.LONG或Calendar.SHORT,locale 所在的地区

数学类与数据结构
Math: 工具类: 不需要实例化,直接调用其静态方法的类
Math.PI(double) 3.141592653589793
double abs(double a) 取某个数的绝对值
double sqrt(double a) 返回正确舍入的 double 值的正平方根。
double pow(double a,double b)返回a的b次幂
double ceil(double a) 天花板
返回最小的(最接近负无穷大)double 值,该值大于等于参数,并等于某个整数。 有小数就对整数部分加1并去除小数位 0.1 => 1 ,2.9 => 3(取整数,不存在四舍五入)
double floor(double a) 地 板
返回最大的(最接近正无穷大)double 值,该值小于等于参数,并等于某个整数。 有小数就去除小数位
long round(double a) 四舍五入,返回最接近参数的 long
角度和弧度转换
static double toDegrees(double angrad) 将用弧度表示的角转换为近似相等的用角度表示的角
static double toRadians(double angdeg) 将用角度表示的角转换为近似相等的用弧度表示的角
随机数
double random() 伪随机数: 返回带正号的 double 值,该值大于等于 0.0 且小于 1.0。
数组的工具类:Arrays
一般用法
int[] copyOf(int[] original, int newLength) 复制指定的数组,截取或用 0 填充(如有必要),以使副本具有指定的长度。将original数组的内容复制到新的数组中,如果新的数组长度大于original长度,则多出的元素用默认值填充。如果新的数组长度小于original长度,那么多余的元素将被舍弃,newLength设置新的数组长度
int[] copyOfRange(int[] original, int from, int to) 将指定数组的指定范围复制到一个新数组。 获取从from索引开始(包含)到to索引为止(不包含)的一个新的数组
String toString(arg[]);将 arg数组转换为字符串。原理: 循环输出每个元素,如果遇上引用类型则会调用元素的toString方法
排序
void sort(int[] a) 对指定的 int 型数组按数字升序进行排序。
int [] a1={1,34,54,23,67,32,89};
Arrays.sort(a1);
System.out.println(Arrys.toString(a1));
void sort(Object[] a) 根据元素的自然顺序对指定对象数组按升序进行排序
String [] a1={"sd","SAHBI","大傻逼"};
Arrays.sort(a1);
System.out.println(Arrys.toString(a1));
java只有值传递: 在调用方法时,给参数进行赋值,永远都是将原变量中的内容复制到参数中
传递的是基本类型值时: 方法内对此值得改变不影响原变量中的内容
如果传递的是引用类型地址时:如果方法中使用引用方式进行改变值,则有可能会对原变量指向的内容进行改变
如果传递的是引用类型地址时:方法内部对其地址进行了修改,则不影响原变量指向的值
查找
int binarySearch(int[] a, int key) 使用二分搜索法来搜索指定的 int 型数组,以获得指定的值。 查找a数组的key值,如果找到则返回key值所在的索引位置。 如果没找到则返回-1
在使用此方法之前,必须要对数值a进行排序
int a[]={6,34,567,23,342,12,78,34,78};
int index= Arrays.binarySearch(a,32);
System.out.println(index);
基本类型的引用类型形式(包装器类型)
包装器: 每一个基本类型都有一个包装器类型
byte ===> Byte
short ===> Short
int ===> Integer
long ===> Long
float ===> Float
double===> Double
char ===> Character
boolean => Boolean
装箱
是一个包装器类型实例化的过程,从基本类型到包装器类型的转换叫装箱(一般java会自动装箱操作)
方式一
int num=10;
Interger i=num;
方式二
Interger i =new Interger(num);
方式三
Interger i= Interger.valueOf(num);
拆箱
将包装器对象中保存的基本类型值进行返回从包装器类型转换为基本类型叫拆箱(一般情况java会进行自动拆箱操作)
//方法一
Interger i=12;
int a = i;
//方法二
int b = i.intValue();
包装器的作用
能在基本类型和 String 类型之间互相转换,除了char类型外
Integer:
int parseInt(String s) 将字符串参数作为有符号的十进制整数进行解析
Byte:
byte parseByte(String a)将字符串参数作为有符号的十进制字节整数进行解析
static String toBinaryString(int i) 以二进制(基数 2)无符号整数形式返回一个整数参数的字符串表示形式
static String toHexString(int i) 以十六进制(基数 16)无符号整数形式返回一个整数参数的字符串表示形式
static String toOctalString(int i) 以八进制(基数 8)无符号整数形式返回一个整数参数的字符串表示形式
String toString() 返回一个表示该 Integer 值的 String 对象
基本类型和引用类型之间转换:装箱和拆箱
包含了本基本类型的属性:比如最大值,最小值,精度值等
枚举类
enum 的全称为 enumeration, 是 JDK 1.5 中引入的新特性,存放在 java.lang 包中
JDK1.5 之前,我们定义常量都是: public static fianl.... 现在又有了枚举,可以把相关的常量分组到一个枚举类型里
枚举指由一组固定的常量组成的类型 ;可以将枚举看成一种特殊的类,枚举的思想很简单,也很方便:它代表了一组固定的常量值
Public  enum  enumname{
    enum-body, //一般写常量
}

经典案例:使用枚举描述一个星期得计划
public enum Week {
    MONDAY,
    TUESDAY,
    WENDESDAY,
    THURSDAY,
    FRIDAY,
    SATURDAY,
    SUNDAY, 
}

public class Demo {
    private static final String MONDAY = null;

public static void weekly(Week day) {
        switch(day){
       
        case MONDAY:
            System.out.println("今天是星期一, MONDAY");
            break;
        case TUESDAY:
            System.out.println("今天是星期二,TUEDAY");
            break;
        case WENDESDAY:
            System.out.println("今天是星期三, WENDAY");
            break;
        case THURSDAY:
            System.out.println("今天是星期四,THUDAY");
            break;
        case FRIDAY:
            System.out.println("今天是星期五,FRIDAY");
            break;
        case SATURDAY:
            System.out.println("今天是星期六, SATDAY");
            break;
        case SUNDAY:
            System.out.println("今天是星期日, SUNDAY");
            break;
        default:
            System.out.println("请重新输入1~7数字(输入0时结束)");
        }
    }    
    
    public static void main(String[] args) {
        
        weekly(Week.MONDAY);
        
    }
}

java内置功能的使用,装箱拆箱及枚举类相关推荐

  1. java(17) - 增强for循环、装箱拆箱、可变参数

    一.增强型for循环: 语法格式: 打印: A B C D E 当遍历集合或数组时,如果需要访问集合或数组的下标时,最好使用旧的方法来便利或循环,而不要用增强型for循环,因为它丢失了下标信息. 对于 ...

  2. Java基础笔记 – 增强的for循环For each循环 自动装箱拆箱 可变参数

    1.For each循环:1.1.语法:1.2.For each循环的使用:1.3.嵌套For each循环:1.4.三种循环遍历集合的列举:1.5.增强的for循环的缺点:2.自动装箱/拆箱(Aut ...

  3. 数据库 - mysql内置功能

    mysql内置功能: 1.视图 2.触发器 3.存储过程 4.事务 5.函数 一.视图 介绍: 视图是一个虚拟表(非真实存在),其本质是[根据SQL语句获取动态的数据集,并为其命名], 用户使用时只需 ...

  4. java dump分析工具_Java 性能分析工具 (2):Java 内置监控工具

    引言 本文为 Java 性能分析工具系列文章第二篇,第一篇:操作系统工具.在本文中将介绍如何使用 Java 内置监控工具更加深入的了解 Java 应用程序和 JVM 本身.在 JDK 中有许多内置的工 ...

  5. java 拆箱 类型不对,Java基本类型于对象类型的拆箱和装箱

    JDK5.0新特性--自动装箱/拆箱 装箱(autoboxing)和拆箱(unboxing) autoboxing: 将基本数据类型用他们响应的引用类包装起来,使其具有对象的性质 unboxing:和 ...

  6. Java内置队列和高性能队列Disruptor

    一.队列简介 队列是一种特殊的线性表,遵循先入先出.后入后出(FIFO)的基本原则,一般来说,它只允许在表的前端进行删除操作,而在表的后端进行插入操作,但是java的某些队列运行在任何地方插入删除:比 ...

  7. java 装箱 拆箱的作用_Java中的装箱拆箱

    一)  装箱与拆箱 Java中有概念是一切皆对象,因为所有的类都默认继承自Object.但是,对于数据类型是个例外,如short,int,long,float,double, byte,char,bo ...

  8. java自动装箱拆箱深入剖析

    这个是jdk1.5以后才引入的新的内容,作为秉承发表是最好的记忆,毅然决定还是用一篇博客来代替我的记忆:  java语言规范中说道:在许多情况下包装与解包装是由编译器自行完成的(在这种情况下包装成为装 ...

  9. Java自动装箱/拆箱

    自动装箱和自动拆箱 那么Java中有八大基本数据类型,byte.char.short.int.long.double.float.boolean.而它们有对应的包装类 Byte.Character.S ...

最新文章

  1. grafana模板_EMQ X + InfluxDB + Grafana:物联网数据监控可视化方案
  2. 配置spring-mvc + simple-spring-memcached
  3. JSON,java对象转json
  4. FileUpload时用Javascript检查扩展名是否有效
  5. github上成员贡献量_真祖传代码!你的GitHub代码已打包运往北极,传给1000年后人类...
  6. IDEA将web项目打成war包
  7. 安卓打开本应用的应用信息界面的代码
  8. CMM3上的集成软件管理
  9. 企业如何做好品牌推广工作?
  10. Oracle LiveLabs实验:DB Security - Unified Auditing
  11. this的三种常见用法
  12. HHDESK便捷功能介绍二
  13. 前沿 | 国际可视化盛会PacificVis2017的十个精彩案例
  14. 多线程(一)——委托与多线程
  15. vs2015制作供js调用的ATL组件dll库详解
  16. 公网ipv6搭建文件服务器,IT之家学院:搭建自己的IPv6私有云
  17. 百度秋招补录前端一面面试
  18. vue中使用MathJax展示数学公式
  19. Matlab二元函数绘图
  20. java suggest_一分钟学会实现Suggest功能的AJAX样例 | 学步园

热门文章

  1. Python爬虫学习①:
  2. CDN真的有用吗?效果好不好
  3. 不同浏览器对键盘事件的不同认知
  4. 【Java基础】从Java语言层面理解BIO,NIO,AIO(二)
  5. 如何根据原理图画封装_如何快速设计元器件原理图库和PCB封装库?
  6. 走在路上能被识别人脸,该为高科技而喜还是为隐私而忧?
  7. AI时代的追星逐浪,中国科技的奋发自强
  8. [转载]上班的同志你看过来
  9. 图像卷积的常见误区与个人思考
  10. 拼多多微信登陆服务器请求失败,拼多多客服网页无法登陆/卡死,怎么办?