当前位置: 首页 > news >正文

day15_常用类

今日内容

上课同步视频: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() );// 其实直接输出对象,默认调用toStringSystem.out.println(s1);// 输出对象地址其实没啥意义,一般打印对象内容// 基本上所有子类都会重写toString,打印内容System.out.println(s1 );}
     @Overridepublic 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类型// 其他基本包装类都有类似parseXxxint 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 );}
}

相关文章:

day15_常用类

今日内容 上课同步视频:CuteN饕餮的个人空间_哔哩哔哩_bilibili 同步笔记沐沐霸的博客_CSDN博客-Java2301 零、 复习昨日 一、作业 二、代码块[了解] 三、API 四、Object 五、包装类 六、数学和随机 零、 复习昨日 抽象接口修饰符abstractinterface是不是类类接口属性正常属性没…...

【网络原理5】IP协议篇

目录 IP协议报头 4位版本号 4位首部长度 8位服务类型(TOS) 16位总长度 IP拆包 16位标识、3位标志、13位片偏移​编辑 8位生存时间(TTL) 8位协议 16位首部校验和 网络地址管理 32位源ip&32位目的ip 方案一:动态分配ip地址 方案2:NAT网络地址转换(使用一个ip代…...

Unity导出WebGL工程,并部署本地web服务器

WebGL打包 设置修改 在Build Settings->PlayerSettings->Other Settings->Rendering 将Color Space 设置为Gamma 将Lightmap Encoding 设置为NormalQuality 在Build Settings->PlayerSettings->Publishing Settings 勾选Decompression Fallback 打包 完成配…...

蓝桥杯考试总结汇总

一进考场设置devc快捷键 设置注释和取消注释快捷键设置代码自动补全快捷键开启devc调试功能,详细可以看怎么开调试功能https://blog.csdn.net/hz18790581821/article/details/78418648比赛过程中,如果不相信自己是否做对,没有把握的&#xf…...

备战蓝桥杯【二维前缀和】

🌹作者:云小逸 📝个人主页:云小逸的主页 📝Github:云小逸的Github 🤟motto:要敢于一个人默默的面对自己,强大自己才是核心。不要等到什么都没有了,才下定决心去做。种一颗树,最好的时间是十年前…...

阿里P6细谈Python简易接口自动化测试框架设计与实现,我直呼内行

1、开发环境 操作系统:Ubuntu18 开发工具:IDEAPyCharm插件 Python版本:3.6 2、用到的模块 requests:用于发送请求 xlrd:操作Excel,组织测试用例 smtplib,email:发送测试报告 l…...

数据库存储

RAID DSL : Domain Spesic Language 专用领域语言 单机存储 一切皆Key-Value 本地文件系统 一切皆文件 Ceph - 分布式存储 关系型数据库通用组件 Query Engine :解析query,生成查询计划Txn Manager :事务并发管理Lock Man…...

hive学习笔记

一、Hive基本概念1.1 hive是什么hive是基于hadoop的一个数仓分析工具,hive可以将hdfs上存储的结构化的数据,映射成一张表,然后让用户写HQL(类SQL)来分析数据tel up down 1383838438 1345 1567 138383…...

7大体系防作弊,牛客放大招了!严肃笔试客户端上线!

如果问起学生对在线笔试的印象,“不公平”和“不服气”占了半壁江山。学生认为很多企业的在线笔试系统并不完善。原因一,不能有效地规避部分学生的作弊行为;原因二,在线考试系统不稳定,bug频出,导致笔试发挥…...

R语言广义可加模型在空气环境污染方面的应用(1)

粉丝私信我希望复制一篇文章的图片,图片来源于文章:Wu C, Yan Y, Chen X, Gong J, Guo Y, Zhao Y, Yang N, Dai J, Zhang F, Xiang H. Short-term exposure to ambient air pollution and type 2 diabetes mortality: A population-based time series st…...

CSDN 编程竞赛二十九期题解

竞赛总览 CSDN 编程竞赛二十九期&#xff1a;比赛详情 (csdn.net) 竞赛题解 题目1、订班服 小A班级订班服了&#xff01;可是小A是个小糊涂鬼&#xff0c;整错了好多人的衣服的大小。小A只能自己掏钱包来补钱了。小A想知道自己至少需要买多少件衣服。 #include <cstdio…...

基于STM32采用CS创世 SD NAND(贴片SD卡)完成FATFS文件系统移植与测试

一、前言 在STM32项目开发中&#xff0c;经常会用到存储芯片存储数据。 比如&#xff1a;关机时保存机器运行过程中的状态数据&#xff0c;上电再从存储芯片里读取数据恢复&#xff1b;在存储芯片里也会存放很多资源文件。比如&#xff0c;开机音乐&#xff0c;界面上的菜单图…...

K_A12_007 基于STM32等单片机驱动AS608光学指纹识别模块 OLED0.96显示

K_A12_007 基于STM32等单片机驱动AS608光学指纹识别模块 OLED0.96显示一、资源说明二、基本参数参数引脚说明三、驱动说明对应程序:四、部分代码说明1、接线引脚定义1.1、STC89C52RCAS608光学指纹模块1.2、STM32F103C8T6AS608光学指纹模块五、基础知识学习与相关资料下载六、视…...

map和set介绍及其底层模拟实现

致努力前行的人&#xff1a; 要努力&#xff0c;但不要着急&#xff0c;繁花锦簇&#xff0c;硕果累累都需要过程&#xff01; 目录 1.关联式容器 2.键值对 3.树形结构的关联式容器 3.1set的介绍 3.2set的使用 3.3multiset的使用 3.4map的使用 3.5multimap的使用 4.常见的面试题…...

实现一个比ant功能更丰富的Modal组件

普通的modal组件如下&#xff1a; 我们写的modal额外支持&#xff0c;后面没有蒙版&#xff0c;并且Modal框能够拖拽 还支持渲染在文档流里&#xff0c;上面的都是fixed布局&#xff0c;我们这个正常渲染到文档下面&#xff1a; render部分 <RenderDialog{...restState}visi…...

2023美赛F题思路数据代码分享

文章目录赛题思路2023年美国大学生数学建模竞赛选题&论文一、关于选题二、关于论文格式三、关于论文提交四、论文提交流程注意不要手滑美赛F题思路数据代码【最新】赛题思路 (赛题出来以后第一时间在CSDN分享) 最新进度在文章最下方卡片&#xff0c;加入获取一手资源 202…...

Flutter如何与Native(Android)进行交互

前言 上一篇文章《Flutter混合开发&#xff1a;Android中如何启动Flutter》中我们介绍了如何在Native&#xff08;Android项目&#xff09;中启动Flutter&#xff0c;展示Flutter页面。但是在开发过程中&#xff0c;很多时候并不是简单的展示一个页面即可&#xff0c;还会涉及…...

数据库主从复制和读写分离

主从数据库和数据库集群的一些问题 数据库集群和主从数据库最本质的区别&#xff0c;其实也就是data-sharing和nothing-sharing的区别。集群是共享存储的。主从复制中没有任何共享。每台机器都是独立且完整的系统。 什么是主从复制? 主从复制&#xff0c;是用来建立一个和主数…...

Java并发编程面试题——线程安全(原子性、可见性、有序性)

文章目录一、原子性高频问题1.1 Java中如何实现线程安全?1.2 CAS底层实现1.3 CAS的常见问题1.4 四种引用类型 ThreadLocal的问题&#xff1f;二、可见性高频问题2.1 Java的内存模型2.2 保证可见性的方式2.3 volatile修饰引用数据类型2.4 有了MESI协议&#xff0c;为啥还有vol…...

DialogFragment内存泄露问题能不能一次性改好

孽缘 自DialogFragment在Android3.0之后作为一种特殊的Fragment引入&#xff0c;官方建议使用DialogFragment代替Dialog或者AllertDialog来实现弹框的功能&#xff0c;因为它可以更好的管理Dialog的生命周期以及可以更好复用。 然而建议虽好&#xff0c;实用须谨慎&#xff0c…...

java学习--多线程

多线程 了解多线程 ​ 多线程是指从软件或者硬件上实现多个线程并发执行的技术。 ​ 具有多线程能力的计算机因有硬件支持而能够在同一时间执行多个线程&#xff0c;提升性能。 并发和并行 并行&#xff1a;在同一时刻&#xff0c;有多个指令在CPU上同时执行并发&#xff1…...

90后阿里P7技术专家晒出工资单:狠补了这个,真香...

最近一哥们跟我聊天装逼&#xff0c;说他最近从阿里跳槽了&#xff0c;我问他跳出来拿了多少&#xff1f;哥们表示很得意&#xff0c;说跳槽到新公司一个月后发了工资&#xff0c;月入5万多&#xff0c;表示很满足&#xff01;这样的高薪资着实让人羡慕&#xff0c;我猜这是税后…...

2023美赛C题:Wordle筛选算法

Wordle 规则介绍 Wordle 每天会更新一个5个字母的单词&#xff0c;在6次尝试中猜出单词就算成功。每个猜测必须是一个有效的单词&#xff08;不能是不能组成单词的字母排列&#xff09;。 每次猜测后&#xff0c;字母块的颜色会改变&#xff0c;颜色含义如下&#xff1a; 程…...

SpringBoot 集成 Kafka

SpringBoot 集成 Kafka1 安装 Kafka2 创建 Topic3 Java 创建 Topic4 SpringBoot 项目4.1 pom.xml4.2 application.yml4.3 KafkaApplication.java4.4 CustomizePartitioner.java4.5 KafkaInitialConfig.java4.6 SendMessageController.java5 测试1 安装 Kafka Docker 安装 Kafk…...

OpenCV 图像金字塔算子

本文是OpenCV图像视觉入门之路的第14篇文章&#xff0c;本文详细的介绍了图像金字塔算子的各种操作&#xff0c;例如&#xff1a;高斯金字塔算子 、拉普拉斯金字塔算子等操作。 高斯金字塔中的较高级别&#xff08;低分辨率&#xff09;是通过先用高斯核对图像进行卷积再删除偶…...

【自学Linux】Linux一切皆文件

Linux一切皆文件 Linux一切皆文件教程 Linux 中所有内容都是以文件的形式保存和管理的&#xff0c;即一切皆文件&#xff0c;普通文件是文件&#xff0c;目录是文件&#xff0c;硬件设备&#xff08;键盘、监视器、硬盘、打印机&#xff09;是文件&#xff0c;就连套接字&…...

CUDA C++扩展的详细描述

CUDA C扩展的详细描述 文章目录CUDA C扩展的详细描述CUDA函数执行空间说明符B.1.1 \_\_global\_\_B.1.2 \_\_device\_\_B.1.3 \_\_host\_\_B.1.4 Undefined behaviorB.1.5 __noinline__ and __forceinline__B.2 Variable Memory Space SpecifiersB.2.1 \_\_device\_\_B.2.2. \_…...

为什么重写equals必须重写hashCode

关于这个问题&#xff0c;看了网上很多答案&#xff0c;感觉都参差不齐&#xff0c;没有答到要点&#xff0c;这次就记录一下&#xff01; 首先我们为什么要重写equals&#xff1f;这个方法是用来干嘛的&#xff1f; public boolean equals &#xff08;Object object&#x…...

< 每日小技巧:N个很棒的 Vue 开发技巧, 持续记录ing >

每日小技巧&#xff1a;6 个很棒的 Vue 开发技巧&#x1f449; ① Watch 妙用> watch的高级使用> 一个监听器触发多个方法> watch 监听多个变量&#x1f449; ② 自定义事件 $emit() 和 事件参数 $event&#x1f449; ③ 监听组件生命周期常规写法hook写法&#x1f44…...

数据结构与算法之二分查找分而治之思想

决定我们成为什么样人的&#xff0c;不是我们的能力&#xff0c;而是我们的选择。——《哈利波特与密室》二分查找是查找算法里面是很优秀的一个算法&#xff0c;特别是在有序的数组中&#xff0c;这种算法思想体现的淋漓尽致。一.题目描述及其要求请实现无重复数字的升序数组的…...

使用iis6搭建网站/直通车怎么开才有效果

Selenium IDE简介 Selenium IDE(集成开发环境)是Selenium Suite下的开源Web自动化测试工具。 与Selenium WebDriver和RC不同&#xff0c;它不需要任何编程逻辑来编写其测试脚本&#xff0c;而只需记录与浏览器的交互以创建测试用例。 之后&#xff0c;可以使用播放选项重新运行…...

平面设计展示网站/北京seo百科

从11月6日到12月6日&#xff0c;一个月从入门到放弃目前为止&#xff0c;学习了 FHS&#xff0c;linux文件架构标准/ /boot /dev /opt /mnt /media /proc /tmp /usr /etc /lib 等等文件的查找locatefind。文本处理工具cat,tac,grep,sed,wc,sort,uniqc,tr,cut,paste,diff,head,t…...

建设路小学家校互动平台网站/企业网站建设规划

Metal Performance Shaders Graph 为线性代数&#xff0c;机器学习&#xff0c;计算机视觉和其他类似领域构建&#xff0c;编译和执行定制的多维计算图。 推荐 基础文章推荐 《SwiftUI是什么&#xff0c;听听大牛们如何说》 经典教程推荐 更新近百篇SwiftUI教程《SwiftUI2020教…...

嘉兴 网站制作/如何建立自己的网站

去年做了一个数据仓库的项目&#xff0c;其中涉及到了CUBE数据级权限的控制。在网上找这方面的资料&#xff0c;找到一个[BI] 通用数据级权限控制解决方案的实现(二)&#xff1a;Cube中的角色设置与数据级权限控制。根据这个大牛的思路&#xff0c;做完之后发现有几个问题&…...

免费中文wordpress主题下载地址/郑州seo外包顾问

工作流引擎 Snaker Snaker是一个基于Java的开源工作流引擎&#xff0c;适用于企业应用中常见的业务流程。本着轻量、简单、灵巧理念设计&#xff0c;定位于简单集成&#xff0c;多环境支持 轻量: 核心代码行数大约7000行&#xff0c;强大的扩展性&#xff0c;支持Spring、Jfina…...

旅游网站开发指导/中国进入一级战备2023

前两天&#xff0c;看了看前端小伙伴的代码&#xff0c;发现他在访问API的时候&#xff0c;并不是直接访问API域名的&#xff0c;而是访问前端域名下的/api路径&#xff0c;然后在部署的服务器上&#xff0c;用nginx把/api路径的请求&#xff0c;转发到API域名那里。我感觉很奇…...