- 基本数据类型所对应的引用数据类型
- Object 可统一所有数据,包装类的默认值是null
- 8种包装类提供不用类型间的转换方式
- Number父类中提供的6个共性方法
- parseXXX( )静态方法
- valueOf( )静态方法
- 注意:需保证类型兼容,否则抛出NumberFormatException异常
package com.dian.commonclass.packagingClass; public class Demo1 { public static void main(String[] args) { // int num=10; //装箱:基本类型 → 引用类型 //基本类型 int num1=18; //使用Integer类创建对象 Integer integer1 = new Integer(num1); Integer integer2 = Integer.valueOf(num1); System.out.println("装箱"); System.out.println(integer1); System.out.println(integer2); // 拆箱, 引用类型 → 基本类型 Integer integer3 = new Integer(100); int num2=integer3.intValue(); System.out.println("拆箱"); System.out.println(num2); //JDK1.5之后,提供自动装箱和拆箱 int age=30; //自动装箱 Integer integer4=age; //自动拆箱 int age2=integer4; System.out.println("-----------------------"); //基本类型和字符串之间转换 //1.基本类型转成字符串 int n1=255; //1.1使用+号 String s1=n1+""; //1.2 使用Integer中的toString()方法 String s2=Integer.toString(n1,16); System.out.println(s1); System.out.println(s2); //2.字符串转成基本类型 String str="150"; int n2=Integer.parseInt(str); System.out.println(n2); //boolean 字符串形式转成基本类型,"true" ---> true 非“true ———> false String str2="true"; String str3="trsss"; boolean b1=Boolean.parseBoolean(str2); boolean b2=Boolean.parseBoolean(str3); System.out.println(b1); System.out.println(b2); } }整数缓冲区
- Java预先创建了256个常用的证书包装类型对象
- 在实际应用当中,对已创建的对象进行复用
package com.dian.commonclass.packagingClass; public class Demo2 { public static void main(String[] args) { //面试题 Integer integer1 = new Integer(100); Integer integer2 = new Integer(100); System.out.println(integer1==integer2); //false System.out.println("****************************************"); // 相当于调用 Integer.valueOf(100); // 100在valueof范围内,两个给的一样的地址,后面200就超了,相当于new了一个integer,地址不一样了,所以是false Integer integer3 = Integer.valueOf(100); // 自动装箱 Integer integer4 = Integer.valueOf(100); System.out.println(integer3 == integer4); // true Integer integer5 = Integer.valueOf(200); // 自动装箱 Integer integer6 = Integer.valueOf(200); System.out.println(integer5 == integer6); // false } }String类
- 字符串是常量,创建之后不可改变
- 字符串字面值存储在字符串池中,可以共享
- String s = "Hello";产生一个对象,字符串池中存储
- String s = new String("Hello"); 产生两个对象,堆、池各一个
package com.dian.commonclass.stringClass; import java.util.Arrays; public class Demo3 { public static void main(String[] args) { String name="hello";//存在常量池中,常量池在方法区 name="zhangsan";//”张三“赋值给name变量,给字符串复制时,并没有修改数据,而是重新开辟一个空间 String name2="zhangsan"; //演示字符串的另一种创建方式,new String(); String str=new String("javayyds"); String str2=new String("javayyds"); System.out.println(str==str2); System.out.println(str.equals(str2)); System.out.println("--------------字符串方法的使用1-------------"); // 1. length(); 返回字符串长度 // 2. charAt(int index); 返回某个位置的字符 // 3. contains(String str); 判断是否包含某个字符串 String content="javayyds能不能好起来"; System.out.println(content.length()); System.out.println(content.charAt(content.length()-1)); System.out.println(content.contains("java")); System.out.println(content.contains("php")); System.out.println("--------------字符串方法的使用2-------------"); //字符串方法的使用 // 4. toCharArray(); 返回字符串对应数组 // 5. indexOf(); 返回子字符串首次出现的位置 // 6. lastIndexOf(); 返回字符串最后一次出现的位置 System.out.println(Arrays.toString((content.toCharArray()))); System.out.println(content.indexOf("java")); System.out.println(content.indexOf("java",4)); System.out.println(content.lastIndexOf("java")); System.out.println("--------------字符串方法的使用3-------------"); // 7. trim(); //去掉字符串前后空格 // 8. toUpperCase(); toLowerCase(); 转换大小写 // 9. endWith(str); startWith(str); 判断是否以str 结尾、开头 String content2=" hello world "; System.out.println(content2.trim()); System.out.println(content2.toUpperCase()); System.out.println(content2.toLowerCase()); String filename="hello.java"; System.out.println(filename.endsWith(".java")); System.out.println(filename.startsWith("hello")); System.out.println("--------------字符串方法的使用4-------------"); // 10. replace(char old, char new); 用新的字符或字符串替换旧的字符或字符串 // 11. split(); 对字符串拆分 System.out.println(content.replace("java","php")); String say = "java is the best language"; String[] arr = say.split("[ ,]+"); // "[ ,]+" 表示空格 逗号切分 +号表示切分可以多个 比如多个空格 System.out.println(arr.length); // 5 for(String string : arr){ System.out.println(string); } //补充两个方法equals、compare();比较大小 System.out.println("****************************************"); String s1 = "hello"; String s2 = "HELLO"; System.out.println(s1.equalsIgnoreCase(s2));// 忽略大小写比较true String s3 = "hello"; String s4 = "HELLO"; System.out.println(s3.compareTo(s4));// compareTo(); 两字符不同时比较字符字典序的ascii码,首字母比较后相减, // 字符相同时比较长度 返回差值,例如hello跟helloabc,返回-3 } }上图的实际案例
package com.dian.commonclass.stringClass; //需求: // // 已知String str = "this is a text"; // 将str中的单词单独获取 // 将str中的text替换成practice // 在text前面插入一个easy // 将每个单词的首字母改为大写 public class Demo3Text { public static void main(String[] args) { String str="this is a text"; //将str中的单词单独获取 String[] str1=str.split("[ ,]+"); for(String arr:str1){ System.out.println(arr); } //将str中的text替换成practice System.out.println(str.replace("text","practice")); //在text前面插入一个easy System.out.println(str.replace("text","easy text")); //将每个单词的首字母改为大写 for(int i = 0; i < str1.length; i ++){ char first = str1[i].charAt(0); char upperfirst = Character.toUpperCase(first); String news = upperfirst + str1[i].substring(1); System.out.println(news); } } }可变字符串
- StringBuffer : 可变长字符串,运行效率慢、线程安全
- StringBuilder : 可边长字符串、运行快、线程不安全
效率都比String高且节省内存
package com.dian.commonclass.stringClass; //效率比String高,比String节省内存 public class BufferBuilder { public static void main(String[] args) { // StringBuffer 和 StringBuilder 用法一致 StringBuffer sb = new StringBuffer(); // 1. append(); 追加 sb.append("java不错"); System.out.println(sb.toString()); // 2. insert(); 添加、插入 sb.insert(0, "在第一个位置插入"); System.out.println(sb.toString()); // 3.replace(); 替换 sb.replace(0, 9, "str"); // 左闭右开 System.out.println(sb.toString()); // 4. delete(); 删除 sb.delete(0, 5); // 左闭右开 System.out.println(sb.toString()); // 5. 清空 sb.delete(0, sb.length()); } }BigDecimal类
- 位置 java.math 包中
- 作用 精确计算浮点数
- 创建方式 BigDecimal bd = new BigDecimal("1.0");
package com.dian.commonclass.bigDecimalClass; import java.math.BigDecimal; public class Demo7 { public static void main(String[] args) { double d1=1.0; double d2=0.9; System.out.println(d1-d2); //面试题 double result=(1.4-0.5)/0.9; System.out.println(result); System.out.println("*******************"); //BigDecimal,大的浮点数精确计算 BigDecimal bd1= new BigDecimal("1.0"); BigDecimal bd2= new BigDecimal("0.9"); //减法 BigDecimal r1=bd1.subtract(bd2); System.out.println(r1); //加法 BigDecimal r2=bd1.add(bd2); System.out.println(r2); //除法 BigDecimal r3=bd1.multiply(bd2); System.out.println(r3); } }Calendar类
- Calendar提供了获取或设置各种日历字段的方法
- 构造方法 protected Calendar(); 由于是protected 所以无法直接创建
- 其他方法
package com.dian.commonclass.CalendarClass; import java.util.Calendar; public class Demo8 { public static void main(String[] args) { // 1. 创建 Calendar 对象 Calendar calendar = Calendar.getInstance(); System.out.println(calendar.getTime().toLocaleString()); System.out.println(calendar.getTimeInMillis()); // 2. 获取时间信息 // 获取年 int year = calendar.get(Calendar.YEAR); // 获取月 从 0 - 11 int month = calendar.get(Calendar.MONTH); // 日 int day = calendar.get(Calendar.DAY_OF_MONTH); // 小时 int hour = calendar.get(Calendar.HOUR_OF_DAY); // 分钟 int minute = calendar.get(Calendar.MINUTE); // 秒 int second = calendar.get(Calendar.SECOND); System.out.println(year+"年"+(month+1)+"月"+day+"日"+hour+":"+minute+":"+second); // 3. 修改时间 Calendar calendar2 = Calendar.getInstance(); calendar2.set(Calendar.DAY_OF_MONTH, 5); System.out.println(calendar2.getTime().toLocaleString()); // 4. add修改时间 calendar2.add(Calendar.HOUR, 1); // x为正就加 负就减 System.out.println(calendar2.getTime().toLocaleString()); // 5. 补充方法 int max = calendar2.getActualMaximum(Calendar.DAY_OF_MONTH);// 月数最大天数 int min = calendar2.getActualMinimum(Calendar.DAY_OF_MONTH); System.out.println(max); System.out.println(min); } }SimpleDateFormat类
- SimpleDateFormat是一个以与语言环境有关的方式来格式化和解析日期的具体类
- 进行格式化(日期→文本)、解析(文本→日期)
- 常用的时间模式字母
package com.dian.commonclass.simpleDateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; public class format { public static void main(String[] args) throws ParseException { // 1. 创建对象 SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH-mm-ss"); // 2. 创建Date Date date = new Date(); // 格式化date(日期→字符串) String str = sdf.format(date); System.out.println(str); // 解析(字符串→时间) Date date2 = sdf.parse("2021/11/01 22-36-23"); System.out.println(date2); } }System类
主要用于获取系统的属性数据和其他 *** 作,构造方法私有的
package com.dian.commonclass; public class systemClass { // public static void main(String[] args) { // //arraycopy 复制 // //src-原数组 srcPos-从哪个位置开始复制0 dest-目标数组 destPos-目标数组的位置 length-复制的长度 // int[] arr = {20, 18, 39, 3}; // int[] dest = new int [4]; // System.arraycopy(src, srcPos, dest, destPos, length); // System.out.println(arr, 4, dest, 4, 4); // // // Arrays.copyOf(original, newLength) // } // } }
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)