1. 包装类

基础数据类型 进行封装 产生一个新的类 (属性 方法 构造器)

基本数据类型 包装类 继承关系

byte Byte Number-->Object

short Short Number-->Object

int Integer Number-->Object

long Long Number-->Object

float Float Number-->Object

double Double Number-->Object

char Character Object

boolean Boolean Object

为什么要有封装类

java是面型对象语言 操作类对象方便

可以放引用数据类型

数组 int[] String[] Student[]

集合 只能装引用数据类型

2. Integer类

public class Test {
public static void main(String[] args) {
System.out.println(Integer.MAX_VALUE);
System.out.println(Integer.MIN_VALUE); System.out.println("物极必反");
System.out.println(Integer.MAX_VALUE+1);
System.out.println(Integer.MIN_VALUE-1);
}
}

Integer构造器

public class Test {
public static void main(String[] args) {
System.out.println(Integer.MAX_VALUE);
System.out.println(Integer.MIN_VALUE); System.out.println("物极必反");
System.out.println(Integer.MAX_VALUE+1);
System.out.println(Integer.MIN_VALUE-1); Integer i1 = new Integer(12);
System.out.println(i1);
}
}

入参为String的构造器

    public Integer(String s) throws NumberFormatException {
this.value = parseInt(s, 10);
}

包装类的 装箱 与拆箱

装箱:int 自动转 Integer

拆箱: Integer --> int

如何快速使用快捷键 变量接收

new 类()

alt+enter

再按一次enter

打断点阅读源码

    public static Integer valueOf(int i) {
if (i >= IntegerCache.low && i <= IntegerCache.high)
return IntegerCache.cache[i + (-IntegerCache.low)];
return new Integer(i);
}

-128--127之间会去cache缓存里面取 之外的才会new对象

compareTo方法

    public static int compare(int x, int y) {
return (x < y) ? -1 : ((x == y) ? 0 : 1);
}

x<y -1

x==y 0

x>y 1

public class Test04 {
public static void main(String[] args) {
//compareTo
Integer integer = new Integer(6);
Integer integer2 = new Integer(12); System.out.println(integer.compareTo(integer2));
}
}
package com.msb2;

/**
* @Auther: jack.chen
* @Date: 2023/9/17 - 09 - 17 - 16:54
* @Description: com.msb2
* @version: 1.0
*/
public class Test04 {
public static void main(String[] args) {
//compareTo
Integer integer = new Integer(6);
Integer integer2 = new Integer(12); System.out.println(integer.compareTo(integer2)); Integer integer3 = new Integer(12);
Integer integer4 = new Integer(12);
System.out.println(integer3 == integer4);//对地址的比较 两个不同的对象 返回false
System.out.println(integer3.equals(integer4));//对封装的value的比较 true //自动装箱 int-->Integer
//装箱 int自动转Integer对象可以具备很多方法
//只有装箱后才有 equal... 才具有很多类的很多方法 供调用
Integer i5 = 4;
Integer i6 = 4;
System.out.println(i5 == i6);//这里为啥返回true 在 -128--127之间 指向的是缓存里面的同一个对象
System.out.println(i5.equals(i6)); //true Integer i7 = 130;
Integer i8 = 130;
System.out.println(i7 == i8);//这里为啥返回false // 不在 -128--127之间
System.out.println(i7.equals(i8)); //true }
}

Integer --> int 拆箱 只保留里面有用的value 其他的都不要扒掉 仅仅暴露本原


Integer i9 = 130; //装箱
int i10 = i9.intValue(); //方式1 int i11 = Integer.parseInt("120");//方式2 System.out.println(i9.toString());

3.util.date

public class Test {

    public static void main(String[] args) {
Date date = new Date();
System.out.println(date);
System.out.println(date.toString());
System.out.println(date.toGMTString());
System.out.println(date.toLocaleString()); System.out.println(date.getYear());//1200开始
System.out.println(date.getMonth());//开始月为0 System.out.println(date.getTime());// 1970-1-1 00:00:00 到现在的时间 ms为单位
System.out.println(System.currentTimeMillis());//系统时间 // 常用的还是System.currentTimeMillis()
// 计算代码的运行时间
long startTime = System.currentTimeMillis();
for (int i = 0; i < 100000; i++) {
System.out.println(i);
}
long endTime = System.currentTimeMillis();
System.out.println(endTime-startTime); }
}

4. java.sql.Date

package com.msb;

import java.sql.Date;

/**
* @Auther: jack.chen
* @Date: 2023/9/17 - 09 - 17 - 17:20
* @Description: com.msb
* @version: 1.0
*/
public class Test02 {
public static void main(String[] args) {
// java.sql.Date
Date d = new Date(1592055964263L); System.out.println(d);
/*
1. java.sql.Date extends java.util.Date
2. 输出
sql.Date 年月日
util.Date 年月日 时分秒 */
java.util.Date d2 = new java.util.Date();
System.out.println(d2.toLocaleString()); //转换 向下 转型 util.Date--sql.Date 父类转子类
java.util.Date d3 = new Date(1592055964263L);// 多态 父类指向子类的引用
Date d4 = (Date)d3; // Date 为java.sql.Date; /*
Animal a = new Dog();
Dog d = (Dog) a;
* */
Date d5 = new Date(d3.getTime());// d3 为util.Date对象 Date d6 = new Date(1592055964263L);// sql.Date
java.util.Date d7 = d6; Date d9 = Date.valueOf("2023-09-17");
System.out.println(d9);
}
}

5. SimpleDateFormat

String --> java.util.Date

package com.msb;

/**
* @Auther: jack.chen
* @Date: 2023/9/17 - 09 - 17 - 21:36
* @Description: com.msb
* @version: 1.0
*/
public class Test03 { public static void main(String[] args) {
// java.sql.Date d = java.sql.Date.valueOf("2023-09-17 19:01:01");
// java.sql.Date d = java.sql.Date.valueOf("2023/09/17");
java.sql.Date d = java.sql.Date.valueOf("2023-09-17");
java.util.Date d2 = d; System.out.println(d2.toString());
}
}

注:上面的代码有局限性 只能转 yyyy-MM-dd 这样的形式的日期

学习新的类 SimpleDateFormat

见名知意 用于日期的简单转换

package com.msb;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date; /**
* @Auther: jack.chen
* @Date: 2023/9/17 - 09 - 17 - 21:43
* @Description: com.msb
* @version: 1.0
*/
public class Test04 { public static void main(String[] args) {
// SimpleDateFormat 继承 DateFormat-抽象类
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); //String --> Date
Date d = null;
try {
d = simpleDateFormat.parse("2023-10-01 10:00:00");
} catch (ParseException e) {
e.printStackTrace();
}
System.out.println(d); // Date-->String
String s = simpleDateFormat.format(new Date());
System.out.println(s); Date d2 = new Date();
System.out.println(d2.toString());
System.out.println(d2.toLocaleString());
System.out.println(d2.toGMTString()); }
}

6. Calendar

package com.msb;

import java.util.Calendar;
import java.util.GregorianCalendar; /**
* @Auther: jack.chen
* @Date: 2023/9/17 - 09 - 17 - 21:49
* @Description: com.msb
* @version: 1.0
*/
public class Test05 { public static void main(String[] args) {
// Calendar 是一个抽象类 不能实例化对象
// new Calendar()
// GregorianCalendar 是Calendar的子类 extends Calendar
Calendar cal = new GregorianCalendar();
Calendar cal2 = Calendar.getInstance(); System.out.println(cal.get(Calendar.YEAR));//年 2023
System.out.println(cal.get(Calendar.MONTH));// 月 8 (从0开始)
System.out.println(cal.get(Calendar.DATE));// 日 17
System.out.println(cal.get(Calendar.DAY_OF_WEEK));//星期中的第几天 1
System.out.println(cal.get(Calendar.DAY_OF_MONTH));// 月里面的第几天 17
System.out.println(cal.getActualMaximum(Calendar.DATE));//日期的最大天数 30
System.out.println(cal.getActualMinimum(Calendar.DATE));//日期的最小天数 1 // set
cal.set(Calendar.YEAR, 1900);
cal.set(Calendar.MONTH, 2);
cal.set(Calendar.DATE, 20);
System.out.println(cal); // String转Calendar
java.sql.Date d = java.sql.Date.valueOf("2023-09-17");
cal.setTime(d);
System.out.println(cal); }
}

练习:输入日志 按格式 输出日历

package com.msb;

import java.util.Calendar;
import java.util.Scanner; /**
* @Auther: jack.chen
* @Date: 2023/9/17 - 09 - 17 - 22:03
* @Description: com.msb
* @version: 1.0
*/
public class Test06 { public static void main(String[] args) {
Calendar cal = Calendar.getInstance(); Scanner sc = new Scanner(System.in);
System.out.println("请输入日期,格式:2019-3-7");
String strDate = sc.next();
// java.sql.Date d = java.sql.Date.valueOf("2023-09-16");
java.sql.Date d = java.sql.Date.valueOf(strDate);
cal.setTime(d); System.out.println("日\t一\t二\t三\t四\t五\t六");
int maxDate = cal.getActualMaximum(Calendar.DATE);
int nowDay = cal.get(Calendar.DATE); // 把一号对应 星期的第几天求出来
cal.set(Calendar.DATE, 1);
int weekNum = cal.get(cal.DAY_OF_WEEK);
// System.out.println("ss:"+weekNum);
int num = weekNum-1;
for (int i = 0; i < num; i++) {
System.out.print("\t");
}
int count = 0;
count = count + num;
for (int i = 1; i < maxDate+1; i++) {
if (count % 7 ==0){
System.out.print("\n");
} if (i == nowDay){
System.out.print(i+"*"+"\t");
}else{
System.out.print(i+"\t");
}
count ++; }
}
}

7. Math

package com.msb;

/**
* @Auther: jack.chen
* @Date: 2023/9/18 - 09 - 18 - 20:26
* @Description: com.msb
* @version: 1.0
*/
public class Test07 {
public static void main(String[] args) {
System.out.println(Math.PI);
System.out.println(Math.random());// [0.0, 1.0)
System.out.println(Math.abs(-12));
System.out.println(Math.ceil(9.1));
System.out.println(Math.floor(9.9));
System.out.println(Math.round(3.5));
System.out.println(Math.max(2, 6));
System.out.println(Math.min(2, 6));
}
}

Math.Random

package com.msb;

import java.util.Random;

/**
* @Auther: jack.chen
* @Date: 2023/9/18 - 09 - 18 - 20:30
* @Description: com.msb
* @version: 1.0
*/
public class Test08 {
public static void main(String[] args) {
System.out.println(Math.random()); Random r1 = new Random(System.currentTimeMillis());
int i = r1.nextInt();
System.out.println(i); Random r2 = new Random();
System.out.println(r2.nextInt(10));
System.out.println(r2.nextDouble()); // 0--1之间
}
}

8. String 字符串

value是用于存放字符串的数组

package com.msb;

/**
* @Auther: jack.chen
* @Date: 2023/9/18 - 09 - 18 - 20:34
* @Description: com.msb
* @version: 1.0
*/
public class TestString01 {
public static void main(String[] args) {
String s = "abc"; }
}

基本接口

package com.msb;

import java.util.Arrays;

/**
* @Auther: jack.chen
* @Date: 2023/9/18 - 09 - 18 - 20:34
* @Description: com.msb
* @version: 1.0
*/
public class TestString01 {
public static void main(String[] args) {
String s = "abc";
System.out.println(s); String s1 = new String();
String s2 = new String("abc");
String s3 = new String(new char[]{'a','b','c'}); System.out.println(s1.isEmpty());
System.out.println(s2.charAt(0)); System.out.println(s1.equals(s2));
System.out.println(s1.compareTo(s2)); String s10 = "abcdefhijk"; System.out.println(s10.substring(3));//从第三个开始截取到最后 包括第三个
System.out.println(s10.substring(3, 6));
System.out.println(s10.concat("pppppp"));
System.out.println(s10.replace('a', 'z')); String s11 = "a-b-c-d-e-f";
String[] s11s = s11.split("-");
System.out.println(Arrays.toString(s11s)); String s12 = "abc";
System.out.println(s12.toUpperCase()); String s14 = " 123 ";
System.out.println(s14.trim()); String s15 = "Abc";
System.out.println(s15.toString()); System.out.println(String.valueOf(false)); }
}

9.StringBuilder

package com.msb;

/**
* @Auther: jack.chen
* @Date: 2023/9/18 - 09 - 18 - 20:51
* @Description: com.msb
* @version: 1.0
*/
public class StringBuilderTest {
public static void main(String[] args) {
StringBuilder sb = new StringBuilder("nihaojavawodeshijie"); sb.append("这是梦想");
System.out.println(sb); sb.delete(3, 6);
System.out.println(sb); sb.deleteCharAt(0);
System.out.println(sb); StringBuilder s2 = new StringBuilder("23445980947");
s2.insert(3, ",");
System.out.println(s2); StringBuilder s3 = new StringBuilder("$2你好吗5980947");
s3.replace(3, 5, "我好累");
System.out.println(s3); s3.setCharAt(3, '!');
System.out.println(s3); StringBuilder sb3 = new StringBuilder("asfda");
for (int i = 0; i < sb3.length(); i++) {
System.out.print(sb3.charAt(i)+"\t");
} System.out.println(); String str = sb3.substring(2, 4);//得到新的string
System.out.println(str);
System.out.println(sb3); } }

String 不可变

StringBuilder StringBuffer 可变 append insert resvert setCharAt 改变内容 可以 使用toString

StringBuilder 效率高 线程不安全

StringBuffer 效率低 线程安全

java基础-常用类-day11的更多相关文章

  1. Java基础常用类深度解析(包含常见排序算法)

    目录 一.工具类 1.1.工具类的设计 1.1.1.公共静态方法 1.2.单例模式 二.包装类 2.1.基本类型的包装类 2.1.1.Integer 2.1.1.1.Integer >> ...

  2. java基础---常用类

    一.字符串类String String:字符串,使用一对""引起来表示,字符串常量池在方法区中 public final class String implements java. ...

  3. JAVA基础--常用类 String,StringBuffer, 基础数据类型包装类, Math类, Enum类

    字符串相关类: String, StringBuffer String类为不可变的字符序列 String s1="hello"; String s2="hello&quo ...

  4. Java基础——常用类之日期时间类

    如果有机会,请尝试Java8中全新的时间日期API!(参见Java8新特性随笔) 如果还是使用Java7及之前的版本,那么你可以尝试一些工具类(参考使用工具类相关的Hutool-DateUtil) 如 ...

  5. Java基础——常用类(Date、File)以及包装类

    本文要点: 基本数据类型的包装类 字符串相关类: 不可变字符序列:String 可变字符序列:StringBuffer.StringBuilder 时间处理相关类: Date DateFormat.S ...

  6. Java基础—常用类之String类

    一.String类是什么 public final class String implements java.io.Serializable, Comparable<String>, Ch ...

  7. JAVA基础——常用类(一)

     首先认识到--String是不可以变性(final) String:字符串,使用一对""引起来表示.      * 1.String声明为final的,不可被继承      * ...

  8. java基础-Integer类常用方法介绍

    java基础-Integer类常用方法介绍 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 在实际程序使用中,程序界面上用户输入的数据都是以字符串类型进行存储的.而程序开发中,我们需 ...

  9. Java基础-StringBuffer类与StringBuilder类简介

    Java基础-StringBuffer类与StringBuilder类简介 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.StringBuffer类 在学习过String类之后 ...

  10. Java API 常用类(一)

    Java API 常用类 super类详解 "super"关键字代表父类对象.通过使用super关键字,可以访问父类的属性或方法,也可以在子类构造方法中调用父类的构造方法,以便初始 ...

随机推荐

  1. 解密数据可视化软件、BI软件和数字孪生软件的不同

    在现代企业和科技领域,数据起着至关重要的作用.为了更好地管理和理解数据,不同类型的软件工具应运而生,其中包括数据可视化软件.BI(Business Intelligence)软件和数字孪生软件.虽然它 ...

  2. Javascript Ajax总结——其他跨域技术之图像Ping和JSONP

    在CORS出现之前,为实现跨域Ajax通信,开发人员利用DOM中能够执行跨域请求的功能,在不依赖XHR对象的情况下也能发送某种请求.1.图像Ping这里使用<img>标签.一个网页可以从任 ...

  3. python脚本抢大麦网演唱会门票 ---保姆级教程 python脚本抢大麦网演唱会门票

    python脚本抢大麦网演唱会门票 流程: 1.下载并安装anaconda:https://repo.continuum.io/archive/ 下载对应linux/mac/windows版本 2.下 ...

  4. DVWA Insecure CAPTCHA(不安全的验证码)全等级

    Insecure CAPTCHA(不安全的验证码) 目录: Insecure CAPTCHA(不安全的验证码) 1. Low 2.Medium 3. High 4.Impossible 加载验证码需要 ...

  5. wangEditor出现初始化编辑器时候未传入任何参数,请查阅文档

    wangEditor出现初始化编辑器时候未传入任何参数,请查阅文档 出现的原因可能是你未在初始视图.元素未创建.created.模态框.弹窗.抽屉中使用,你应该在div元素创建了再执行初始渲染, 解决 ...

  6. 神经网络基础篇:史上最详细_详解计算图(Computation Graph)

    计算图 可以说,一个神经网络的计算,都是按照前向或反向传播过程组织的.首先计算出一个新的网络的输出(前向过程),紧接着进行一个反向传输操作.后者用来计算出对应的梯度或导数.计算图解释了为什么用这种方式 ...

  7. 六步带你体验EDS交换数据全流程

    本期我们将走进XX医疗集团向某慢病院共享数据的场景,如何通过EDS完成数据交换,进而实现医疗数据的安全可控共享. 本文分享自华为云社区<[EDS从小白到专家]第1期-六步带你体验EDS交换数据全 ...

  8. IoT技术的最后决战!百万大奖究竟花落谁家?

    2022年5月25日华为云IoT创新应用开发大赛决赛路演正式打响! 华为云IoT创新应用开发大赛是华为云面向IoT产业领域的重量级精品赛事,自去年11月上线以来,受到了物联网协会.生态伙伴.产业基地等 ...

  9. 火山引擎DataLeap的Data Catalog系统搜索实践 (上)

    更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 摘要 火山引擎大数据研发治理套件 DataLeap的Data Catalog系统通过汇总和组织各种元数据,解决了数 ...

  10. 火山引擎 DataTester 为企业降本增效:1 个人也能成为一支 A/B 实验团队

    更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 今年天猫电商.京东均表示交易规模与 2021 年持平,跟往年急剧增长的销售额相比,今年的双十一显得略微" ...