文章目录
今天所学内容比较重要,关系到以后的项目开发中所需要的一些比较常用的知识点,最好熟记于心
提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
提示:这里可以添加本文要记录的大概内容: 例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。
提示:以下是本篇文章正文内容,下面案例可供参考
一、基本的常用类分类说明
常用的类分为六大类 1、内部类(前面已经提到过,本次任务就不作过多解释) 2、Object类(前面也已经讲过具体请看基础回顾第9章) 3、包装类(本次任务重点讲解对象) 4、String类型(重点讲解) 5、BigDecimal类(只做了解,打算放到下一次任务做一个具体的解释) 6、时间类型(部分重点详解)
以上就是常用类的基本分类,按照计划先讲解今天的重点任务,一、对包装类的讲解 二、对String类的讲解
二、内容部分
(1)、包装类
1、什么是包装类?
概念:基本数据类型所对应的应用数据类型,Object可统一所有的数据,包装类的默认值是null。 包装类出现的原因:由于Java是一门纯面向对象语言,但是对于八大基本数据类型而言却不能独自实例化对象,为了填这一个坑,于是Java就推出了包装类这一个概念,各个数据类型都有与之所对应的包装类,并且可以创建对象,并且每一个包装类对最终继承于超类 Object(之前我就说过,Object类是所有类的父类,此处正有体现)
2、包装类的继承关系详解
继承关系如下:
基本数据类型 | 对应的引用数据类型 | 继承关系 |
---|
byte | Byte | extends Number extends Object | short | Short | extends Number extends Object | int | Integer | extends Number extends Object | long | Long | extends Number extends Object | float | Float | extends Number extends Object | double | Double | extends Number extends Object | char | Character | extends Object | boolean | Boolean | extends Object |
巧法妙记: 1、数值型都继承Number 2、int的包装类Integer 3、char的包装类Character
3、装箱与拆箱
装箱:包装类–>基本数据类型
public class Test01{
public static void main(String[] args){
int i=100;
Integer integer =Integer.valueOf(i);
System.out.println(integer);
System.out.println(integer.getClass().getSimpleName());
}
}
拆箱:包装类–>基本数据类型
public class Test02{
public static void main(String [] args){
Integer integer=new Integer(100);
int i=integer.intValue();
System.out.println(i);
System.out.println(i.getClass().getSimpleName());
}
}
JDK1.5:在JDK1.5版本过后,便出现了自动拆箱与自动装箱 自动装箱:基本数据类型–>包装类
public class Test03{
public static void main(String[] args){
int i=100;
Integer integer=i;
System.out.println(integer);
System.out.println(integer.getClass().getSimpleName());
}
}
public class Test04{
public static void main(String[] args){
Integer integer=new Integer(100);
int i=integer;
System.out.println(i);
System.out.println(i.getClass().getSimpleName());
}
}
案例:实现将 字符串数组转换成int数组
package net.yzy.knowledge.lesson22;
public class Test05 {
public static void main(String[] args) {
String []str={"1","2","3","4","5","6","7"};
int [] num=new int[str.length];
for (int i=0;i<=str.length-1;i++){
num[i]= Integer.valueOf(str[i]);
}
for (int b:num
) {
System.out.print(b+"\t");
}
System.out.println();
System.out.println(num.getClass().getSimpleName());
}
}
应用场景:集合(类似数组的容器),但是集合只能存引用数据类型,如果想存储基本数据类型,就可以把基本数据类型转换为对应的包装类对象
4、总结:
相对而言,Integer部分难度较小,可能是知识点比较浅,但是如果看底层代码的话,我只能说任重而道远,有些时候底层代码看懂了还不一定会用。
(2)、String类
1、String类的分析
说明:String 是一个不可变的类,即一旦一个String对象被创建,包含在这个对象中的字符序列是不可改变的。
2、String类中常用的方法
String str = "123abc";
str = str.concat("DEF123");
str = str.substring(2);
str = str.substring(1, 7);
str = str.toUpperCase();
str = str.toLowerCase();
str = " 123 a bcD EF 123 ";
str = str.trim();
str = str.replace('2', '-');
str = str.replaceFirst("3", "林成");
str = str.replaceAll("1", "xxx");
str = str.replaceAll(" ", "");
System.out.println("判断两个字符串内容是否相同:(区分大小写)" + str.equals("xxx-林成abcDEFxxx-3"));
System.out.println("判断两个字符串内容是否相同:(不区分大小写)" + str.equalsIgnoreCase("XXX-林成ABCdefxxx-3"));
System.out.println("判断此字符串是否以某个字符串开头:" + str.startsWith("xxx"));
System.out.println("判断此字符串是否以某个字符串结尾:" + str.endsWith("-3"));
System.out.println("查询此字符串第一次在目标字符串中的下标:" + str.indexOf("-"));
System.out.println("查询此字符串最后一次在目标字符串中的下标:" + str.lastIndexOf("-"));
System.out.println("获取指定下标上的字符:" + str.charAt(4));
System.out.println(str);
3、案例演示
package net.yzy.knowledge.lesson22;
public class Test06 {
public static void main(String[] args) {
int i=100;
System.out.println(String.valueOf(i));
System.out.println(String.valueOf(i).getClass().getSimpleName());
boolean a=true;
System.out.println(String.valueOf(a));
System.out.println(String.valueOf(a).getClass().getSimpleName());
}
}
package com.dream.string_class;
public class Test03 {
public static void main(String[] args) {
String email = "yzy@qq.com";
int index1 = email.indexOf("@");
int index2 = email.indexOf(".");
if(index1 == 0 || index2 == email.length()-1 || (index2-index1)<=1){
System.out.println("邮箱格式错误");
}
}
}
4、StringBuffer 与 StringBuilder
说明:StringBuffer与StringBuilder的用法及其相似 StringBuffer的案例:
public class Test01 {
public static void main(String[] args) {
StringBuffer sb = new StringBuffer("123abc");
sb.append("DEF123");
sb.insert(6, "xxx");
sb.setCharAt(3, 'A');
sb.replace(6, 9, "为生命而怒吼");
sb.deleteCharAt(1);
sb.delete(5, 11);
sb.reverse();
System.out.println(sb);
}
}
StringBudilder的案例:
public class Test01 {
public static void main(String[] args) {
StringBuilder sb = new StringBuilder("123abc");
sb.append("DEF123");
sb.insert(6, "xxx");
sb.setCharAt(3, 'A');
sb.replace(6, 9, "用良心做教育");
sb.deleteCharAt(1);
sb.delete(5, 11);
sb.reverse();
System.out.println(sb);
}
}
5、面试题
package com.dream.string_class;
public class Test04 {
public static void main(String[] args) {
}
}
package com.dream.string_class;
public class Test05 {
public static void main(String[] args) {
String str1 = "abc";
String str2 = "abc";
System.out.println(str1 == str2);
String str3 = "ab" + "c";
System.out.println(str3 == str1);
final String s1 = "ab";
final String s2 = "c";
String str4 = s1+s2;
System.out.println(str4 == str1);
String s3 = "ab";
String s4 = "c";
String str5 = s3+s4;
System.out.println(str5 == str1);
}
}
总结:
以上便是对String类的知识进行总结,后期如果有更新会按时进行更改。
总结
今天的主要内容为以上部分,若有问题,QQ:1091416907私聊,不说了 赶地铁回家了。
|