day15_常用类

news2024/9/21 14:38:31

今日内容

上课同步视频:CuteN饕餮的个人空间_哔哩哔哩_bilibili
同步笔记沐沐霸的博客_CSDN博客-Java2301
零、 复习昨日
一、作业
二、代码块[了解]
三、API
四、Object
五、包装类
六、数学和随机

零、 复习昨日

抽象接口
修饰符abstractinterface
是不是类接口
属性正常属性没有属性,全部是常量,默认被public static final
方法可以有正常方法,也可以有抽象方法全部都是抽象方法,默认被public abstract修饰
构造方法可以有,但是不能创建对象不能有
子类extends 抽象类,单继承implements 接口,多实现

相同:

  1. 都可以当做数据类型来用,用来接收子类类型
  2. 子类无论继承抽象类,还是实现接口都要强制重写父类的抽象方法

一、作业

见代码

二、代码块[了解]

代码块,就是一对儿{} 包裹的代码就是代码块.

特殊的代码块

  1. 静态代码块
  2. 构造代码块
  3. 局部代码块
public class Code{

    /**
     * 随着类加载而执行
     * 内部的代码在内存只有一份
     */
    static {
        System.out.println("静态代码块" );
    }

    /**
     * 构造代码块会在每次的构造方法执行前执行
     * 用于抽取构造方法中重复代码,在每个构造方法执行前都能执行
     */
    {
        System.out.println("构造代码块" );
    }

    public void test() {
        System.out.println("方法内1" );
        int b = 1;
        /**
         * 局部代码块,及时释放资源
         */
        {
            int a = 1;
            System.out.println(a );
            System.out.println("局部代码块" );
        }

        // a变量无法使用
        // System.out.println("方法内2" + a);
        System.out.println(b );
    }

    public Code(){
        System.out.println("无参构造" );
    }

    public Code(int a){
        System.out.println("有参构造" );
    }
    public static void main(String[] args) {
        Code code = new Code();
        // Code code2 = new Code(1);
        code.test();
    }
}

扩展知识,有时间自己看: 内部类(成员内部类,静态内部类,…)

三、API

API : Application Programing Interface 应用程序编程接口
API 其实就是JDK说明书,通过API学习常用java类

四、Object

ps: java.lang包下的资源使用时不需要导包

Object 是类层次结构的根类。每个类都使用 Object 作为超类。所有对象(包括数组)都实现这个类的方法。


Object类是所有类的父类,所有类的对象都可以使用Object类的方法
隐式继承Object

构造方法

Object有构造方法,可以创建对象

方法

返回值方法名解释
booleanequals(Object obj)指示其他某个对象是否与此对象“相等”。
inthashCode()返回该对象的哈希码值。
StringtoString()返回该对象的字符串表示。
    public static void main(String[] args) {
        // equals 底层使用==判断地址是否相等
        boolean equals = o1.equals(o2);
        System.out.println(equals);

        /**
         * 大部分时候判断对象地址没有意义,因为每次new都会有新地址,肯定不一样
         * 且项目开发中,大多数时候认为对象的属性完全一致则认为是同一对象,即相等
         * 即,equals应该判断对象属性是否相等,而不是地址是否相等
         * 所以!!!! 所有子类都会重写equals用于判断对象属性内容是否一致!
         * ----------------------------------------------
         * 面试题: == 和 equals有什么区别
         * 1. == 是运算符,equals是方法
         * 2. Object中的equals就是==,判断地址
         * 3.如果子类重写了equals,那么就是判断内容相等而不是地址
         */
        Student s1 = new Student(18,"老黑");
        Student s2 = new Student( 18,"老黑");

        System.out.println(s1.equals(s2));

    }
    public static void main(String[] args) {
        Student s1 = new Student(18,"老黑");
        Student s2 = new Student( 18,"老黑");

        // 这就是内存的地址值
        System.out.println(s1.hashCode() );
        // 对象调用toString会打印包名+类名+@+变化后的hashcode值
        System.out.println(s1.toString() );
        // 其实直接输出对象,默认调用toString
        System.out.println(s1);

        // 输出对象地址其实没啥意义,一般打印对象内容
        // 基本上所有子类都会重写toString,打印内容
        System.out.println(s1 );
    }
     @Override
     public String toString() {
         //return "学生叫:"+name+",今年:"+age;
         return "Student {name = "+name+" , age = "+age+"}";
     }

五、包装类

将8个基本类型包装成了对应的引用类型,变成包装类

基本类型包装类
byteByte
shortShort
intInteger
longLong
floatFloat
Double
charCharacter
booleanBoolean

为什么?
因为基本类型功能单一,包装成类,那么就会有对应的属性,方法.功能变的更多更好用.

最主要的用处: 用于String和对应基本类型转换

5.1 Integer

通过查看API得知,数字相关类型,内部的属性和构造方法以及方法都和Integer差不多,就以Integer为例

Integer 类在对象中包装了一个基本类型 int 的值。Integer 类型的对象包含一个 int 类型的字段。

此外,该类提供了多个方法,能在 int 类型和 String 类型之间互相转换,还提供了处理 int 类型时非常有用的其他一些常量和方法。

属性

static intMAX_VALUE 值为 231-1 的常量,它表示 int` 类型能够表示的最大值。
static intMIN_VALUE 值为 -231 的常量,它表示 int 类型能够表示的最小值。

构造方法

Integer(int value)
构造一个新分配的 Integer 对象,它表示指定的 int 值。
Integer(String s)
构造一个新分配的 Integer 对象,它表示 String 参数所指示的 int 值。

        // 将基本类型变成包装类
        Integer i1 = new Integer(1);
        System.out.println(i1);

        // 能将纯数字字符串变成数字
        Integer i2 = new Integer("222");
        System.out.println(i2+2 );

方法
int intValue()
以 int 类型返回该 Integer 的值。
static int parseInt(String s)
将字符串参数作为有符号的十进制整数进行解析。
String toString()
返回一个表示该 Integer 值的 String 对象。
static String toString(int i)
返回一个表示指定整数的 String 对象。
static Integer valueOf(int i)
返回一个表示指定的 int 值的 Integer 实例。
static Integer valueOf(String s)
返回保存指定的 String 的值的 Integer 对象。

       // 包装类中取出基本类型的值
        int i = i1.intValue( );
        System.out.println(i + 222 );

        // parseInt() 将纯数字字符串解析为对应int类型
        // 其他基本包装类都有类似parseXxx
        int j = Integer.parseInt("333");
        System.out.println(j + 1 );
		
        // 将数字变字符串返回 
        String s = Integer.toString(22);
        System.out.println(s + 22 );

        // 将基本类型int变为包装类返回
        Integer integer = Integer.valueOf(111);
        // 将字符串变包装类对象返回
        Integer integer1 = Integer.valueOf("111");
        System.out.println(integer1+ 222 );

        // Integer+""变字符串
        System.out.println(i1+"" + 1 );

image-20230217150944967

5.2 自动装箱&拆箱

以前将基本类型装箱成包装类
Integer i = new Integer(1);

现在推荐自动装箱的写法
Integer i = 1;


以前将从包装类中取出基本类型的值
int i = integer.intValue();

现在推荐自动拆箱的写法

int i = integer;

5.3 Character

char的包装类,主要用处用来判断和转换单个字符.

static boolean isDigit(char ch)
确定指定字符是否为数字。
static boolean isLetter(char ch)
确定指定字符是否为字母。
static boolean isLowerCase(char ch)
确定指定字符是否为小写字母。
static boolean isUpperCase(char ch)
确定指定字符是否为大写字母
static char toLowerCase(char ch)
使用取自 UnicodeData 文件的大小写映射信息将字符参数转换为小写。
static char toUpperCase(char ch)
使用取自 UnicodeData 文件的大小写映射信息将字符参数转换为大写。

    public static void main(String[] args) {

        System.out.println(Character.isDigit('a'));
        System.out.println(Character.isDigit('1'));
        System.out.println(Character.isLetter('a') );
        System.out.println(Character.isLetter('1') );
        System.out.println(Character.isLowerCase('a') );
        System.out.println(Character.isUpperCase('a') );

        char a = Character.toLowerCase('A');
        System.out.println(a );

    }

六、数学和随机

6.1 Math

Math提供了一些列数学运算,如初等指数、对数、平方根和三角函数。

方法都是静态的,直接通过类名调用,将构造方法私有了,不能创建对象的!

static doublePI 比任何其他值都更接近 pi(即圆的周长与直径之比)的 double 值。
static doubleE 比任何其他值都更接近 e(即自然对数的底数)的double` 值。

static int abs(int a)
返回 int 值的绝对值。
static double ceil(double a)
返回最小的(最接近负无穷大)double 值,该值大于等于参数,并等于某个整数。
static double floor(double a)
返回最大的(最接近正无穷大)double 值,该值小于等于参数,并等于某个整数。
static double max(double a, double b)
返回两个 double 值中较大的一个。
static double pow(double a, double b)
返回第一个参数的第二个参数次幂的值。
static double random()
返回带正号的 double 值,该值大于等于 0.0 且小于 1.0。
static long round(double a)
返回最接近参数的 long。

    public static void main(String[] args) {
        // static int abs(int a)
        // 返回 int 值的绝对值。

        System.out.println(Math.abs(-1) );

        // static double ceil(double a)
        // 返回最小的(最接近负无穷大)double 值,该值大于等于参数,并等于某个整数。
        System.out.println(Math.ceil(-11.2) );

        // static double floor(double a)
        // 返回最大的(最接近正无穷大)double 值,该值小于等于参数,并等于某个整数。
        System.out.println(Math.floor(11.2) );

        // static double max(double a, double b)
        // 返回两个 double 值中较大的一个。
        System.out.println(Math.max(11,2) );

        // static double pow(double a, double b)
        // 返回第一个参数的第二个参数次幂的值。
        System.out.println(Math.pow(2,0.5) );

        // static double random()
        // 返回带正号的 double 值,该值大于等于 0.0 且小于 1.0。
        System.out.println(Math.random() );

        System.out.println((int)(Math.random()*10) );

        // static long round(double a)
        // 返回最接近参数的 long。(四舍五入)
        System.out.println(Math.round(4.4) );

        System.out.println(Math.round(Math.random() * 10) );
    }

6.2 Random

随机数生成器.

构造方法

Random()
创建一个新的随机数生成器。
Random(long seed)
使用单个 long 种子创建一个新的随机数生成器。 (后续创建出的随机数固定)

方法

int nextInt()
返回下一个伪随机数,它是此随机数生成器的序列中均匀分布的 int 值。 (正负21亿之间随机)
int nextInt(int n)
返回一个伪随机数,它是取自此随机数生成器序列的、在 0(包括)和指定值(不包括)之间均匀分布的 int 值。

public class TestRandom {

    public static void main(String[] args) {

        Random random = new Random();
        int nextInt = random.nextInt( );
        System.out.println(nextInt);

        System.out.println(random.nextInt(10));

        // 摇骰子
        System.out.println(random.nextInt(6)+1);

        dianming();
    }

    /**
     * 设计程序,随机点名
     */

    public static void dianming() {
        String[] names = {"李闯","留辉","含宇","耀冉","党浩"};
        Random random = new Random( );
        int index = random.nextInt(names.length);
        String name = names[index];
        System.out.println("回答问题: " + name );
    }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/352035.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Leetcode(每日一题)——1139. 最大的以 1 为边界的正方形

摘要 1139. 最大的以 1 为边界的正方形 一、以1为边界的最大正方形 1.1 动态规划 第530题需要正方形所有网格中的数字都是1,只要搞懂动态规划的原理,代码就非常简洁。而这题只要正方形4条边的网格都是1即可,中间是什么数字不用管。 这题…

Hive的安装与配置

一、配置Hadoop环境先看看伪分布式下的集群环境有没有错误的情况:输入命令:start-all.sh jps查看伪分布式的所有进程是否完善二、解压并配置HiveHive压缩包→ https://pan.baidu.com/s/1eOF_ICZV8rV-CEh3nX-7Xw 提取码: m31e 复制这段内容后打开百度网盘…

逆向 xx音乐 aversionid

逆向 xx音乐 aversionid 版本 7.2.0 版本 7.22.0 第一步,charles 抓包 目标字段 aversionid 加固平台 com.stub.StubApp 360加固s.h.e.l.l.S 爱加密com.secneo.apkwrapper.ApplicationWrapper 梆梆加固com.tencent.StubShell.TxAppEntry 腾讯加固 第二步&…

【网络编程】Java快速上手InetAddress类

概念 Java具有较好的网络编程模型/库,其中非常重要的一个API便是InetAddress。在Java.net 网络编程中中有许多类都使用到了InetAddress 这个类代表一个互联网协议(IP)地址。 IP地址是一个32(IPV4)位或128(…

求职季哪种 Python 程序员能拿高薪?

本文以Python爬虫、数据分析、后端、数据挖掘、全栈开发、运维开发、高级开发工程师、大数据、机器学习、架构师这10个岗位,从拉勾网上爬取了相应的职位信息和任职要求,并通过数据分析可视化,直观地展示了这10个职位的平均薪资和学历、工作经…

02 Context的使用

对于 HTTP 服务而言,超时往往是造成服务不可用、甚至系统瘫痪的罪魁祸首。 context 标准库设计思路 为了防止雪崩,context 标准库的解决思路是:在整个树形逻辑链条中,用上下文控制器 Context,实现每个节点的信息传递…

Package ‘oniguruma‘, required by ‘virtual:world‘, not found

一、操作系统环境 OS版本信息:Rocky Linux 9.1 PHP版本:8.0.26 安装的依赖: dnf -y install libXpm-devel libXext-devel gmp gmp-devel libicu* icu* net-snmp-devel libpng-devel libjpeg-devel freetype-devel libxslt-devel sqlite…

真正意义上的数字零售,最为重要的一点就是要回归零售本身

互联网浪潮的退却并未真正将人们的思维带离互联网的牢笼,相反,越来越多的人依然在用互联网式的眼光看待后互联网时代的事物。尽管这样一种做法可以在一定程度上取得一定的效果,但是,如果仅仅只是用互联网思维来揣度这一切&#xf…

基于虚拟机机的代码保护技术

虚拟机保护技术是基于x86汇编系统的可执行代码转换为字节码指令系统的代码,以达到保护原有指令不被轻易逆向和篡改的目的。 字节码(Byte-code)是一种包含执行程序,由一序列 op 代码/数据对组成的 ,是一种中间码。字节是…

《第一行代码》 第五章:详解广播机制

如果你了解网络通信原理应该会知道,在一个 IP 网络范围中最大的IP 地址是被保留作为广播地址来使用的。比如某个网络的 IP 范围是 192.168.0XXX,子网掩码是255.255.255.0那么这个网络的广播地址就是 192.168.0255广播数据包会被发送到同-网络上的所有端口…

Spring Security OAuth2四种授权模式总结(七)

写在前面:各位看到此博客的小伙伴,如有不对的地方请及时通过私信我或者评论此博客的方式指出,以免误人子弟。多谢!如果我的博客对你有帮助,欢迎进行评论✏️✏️、点赞👍👍、收藏⭐️⭐️&#…

【MySQL】MySQL表的增删改查(CRUD)

✨个人主页:bit me👇 ✨当前专栏:MySQL数据库👇 ✨算法专栏:算法基础👇 ✨每日一语:生命久如暗室,不碍朝歌暮诗 目 录🔓一. CRUD🔒二. 新增(Creat…

将array中元素四舍五入取整的np.rint()方法

【小白从小学Python、C、Java】 【计算机等级考试500强双证书】 【Python-数据分析】 将array中元素四舍五入取整 np.rint()方法 选择题 关于以下python代码说法错误的一项是? import numpy as np a np.array([-1.7, 1.5, -0.2, 0.3]) print("【显示】a\n",a) pr…

BI是报表?BI是可视化?BI到底是什么?

很多企业认为只要买一个前端商业智能BI分析工具就可以解决企业级的商业智能BI所有问题,这个看法实际上也不可行的。可能在最开始分析场景相对简单,对接数据的复杂度不是很高的情况下这类商业智能BI分析工具没有问题。但是在企业的商业智能BI项目建设有一…

数字化系统使用率低的原因剖析

当“数字化变革”成为热门话题,当“数字化转型”作为主题频频出现在一个个大型会议中,我们知道数字化时代的确到来了。但是,根据Gartner的报告我们看到一个矛盾的现象——85%的企业数字化建设与应用并不理想、但对数字化系统的需求多年来持续…

软件测试项目实战(附全套实战项目教程+视频+源码)

开通博客以来,我更新了很多实战项目,但一部分小伙伴在搭建环境时遇到了问题。 于是,我收集了一波高频问题,汇成本篇,供大家参考,避免重复踩坑。 如果你还遇到过其他坑和未解决的问题,可在评论区…

webpack安装步骤(一)

系列文章目录 安装步骤系列文章目录前言一、Webpack是什么?Webpack官网解释解释内容如下图二、Webpack的安装步骤第一步:检查本机是否已经安装过Webpack(全局)1.操作如下2.结果如下图第二步:安装webpack(非…

利用无线通讯技术构建工厂智能化立体仓储

立体仓库主要通过检测、信息识别、控制、通信、监控调度、大屏显示及计算机管理等装置组成。完成仓库各设备连接无线化,可大幅减少网线布防成本,缩短生产线调度时间,实现汽车装配生产线的柔性生产,提高汽车装配生产的自动化水平。…

短视频的素材在哪里找呢?推荐给你一个好办法

我刚刚在视频号做出了30万播放的小爆款,过去3年我做出了很多6位数播放的视频。在这里,我就大家分享20个我常用的素材渠道,其中一些渠道比较小众。除此之外,我也希望同时讲一下短视频的内容生产。为了方便大家浏览,我把…

使用web3连接Georli测试网络

文章目录1.使用geth方式在终端2.写成脚本2.1 通过metamask (现成的太复杂,搞不太来)2.2 通过自己的接口3.通过truffle方式连接 (不成功)目前的工作情况是,已在remix写好执行合约并部署在Georli测试网络中&a…