IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发工具 -> 2022-04-13 javaSE(07)西安 idea详细使用,api应用程序接口,Scanner、Math、Arrays、System、BigInteger、BigDecimal -> 正文阅读

[开发工具]2022-04-13 javaSE(07)西安 idea详细使用,api应用程序接口,Scanner、Math、Arrays、System、BigInteger、BigDecimal


idea四层级结构:

Editplus工具操作Java文件的基本单位:类文件。对应一级结构
idea操作Java文件的基本单位:项目(Project)。对应四级结构
第1层级架构:项目(project)

项目project包含:
?? ?.idea文件夹(项目的配置文件)
?? ? out文件夹(第2层级对应的所有字节码文件)
?? ? 模块文件夹(第2层级架构)

第2层级架构:模块(moudle)

模块moudle包含:
?? ? src文件夹(存储第3层级架构内容)
?? ? 模块名.iml 文件(模块配置文件)
模块上右键-Open Module settiongs(可以新建模块,移除模块,导入模块)

第3层级架构:包(Package)
包的含义:多级文件夹
包的好处:1.对程序文件管理分类。2.有效避免重名的文件?? ?

包中包含:
?? ?java程序(第4层架构)

包的注意:如果程序在包中,必须在第4层架构进行包的声明
包的声明:
?? ?1.包名就是公司域名倒序+功能 如:com.atguigu.idea
?? ?2.格式:package 包名;
?? ?3.命名规范:
?? ? ? ? 一个单词:单词全部小写(一般没有)
?? ? ? ? 多个单词:使用.进行间隔,一个单词就是一级文件夹

第4层级架构:.java文件(类文件)
public class HelloWorld {
? ? public static void main(String[] args) {
? ? ? ? System.out.println("Helloworld");?
? ?}
}


idea快捷模块

  • psvm ?main()方法
  • sout ?换行输出
  • soutv ?变量输出
  • 循环次数.fori ?正序循环
  • 循环次数.forr ?倒序循环

idea常用快捷键:

  • 基础键(代码提示continue) ? ? ? ALT+/
  • 单行注释 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?CTRL+/
  • 多行注释?? ??? ??? ? ? ? ?CTRL+shift+/
  • 格式化代码?? ??? ? ? ? ?CTRL+ALT+L
  • 抽取变量(接受方法返回值) ? ? ? ?CTRL+ALT+V
  • 万能键(代码报错修改提示)?? ? ? ? ?ALT+ENTER

import关键字:
????????模板类(javaBean)与测试类(包含main方法的类是测试类)在同一个包下可以直接使用,不用进行import导入。当想使用其他包下的java文件时,需要使用import关键字导包。

格式:import 包名.类名;(推荐)
? ? ? ? ? ?import 包名.*;//不推荐。因为import导入的类会导入到方法区的字节码文件区
import关键字必须声明在package关键字和类文件关键字之间(class,interface,enum)


api(应用程序接口)
含义:指代编程语言、框架、插件源码中的类和接口。

  • java api:java语言源码的类和接口。
  • java api文档:针对源码的类和接口提供的查询文档。

如果某个类或接口在java.lang根目录下,使用时不需导包,因为这是jvm的根路径。但是java.lang.reflect下就需要导包。


Scanner类 java.util

对基本类型和字符串类型的文本扫描器。
Scanner类有8个构造器,但是没有无参构造器。

//使用的构造器Scanner(InputStream source)?
Scanner sc=new Scanner(System.in);//System.in是键盘录入对象固定。
System.out.println("请输入一个整数");
int num=sc.nextInt();//程序会在这一块卡主
sc.close();//关闭资源。

面试题:为什么要调用sc.close()

java核心操作是内存操作,但是无法操作硬件.需要靠jvm建立通道忙,不关闭的话会建立越来越多连接。

注意点:

  1. 键盘录入的数据必须在调用方法(如:nextInt())的对应类型的取值范围内。
  2. Scanner只提供7种基本类型扫描的功能,没有提供char类型元素的扫描功能。
  3. 在进行基本类型数据键盘录入扫描时,无法扫描最后的回车换行(回车键)。

回车键科普

回车键是一个组合:回车+换行。
回车:将光标移动到当前行的行首
换行:将光标移动到下一行的对应位置


next()和nextLine()

使用 Scanner对象扫描键盘录入的字符串类型元素

Scanner sc=new Scanner(System.in);
System.out.println("请输入一个字符串");
String str=sc.next();
sc.close();//关闭资源。

注意点:
1.使用next() 扫描的时候,遇到空白符号(空格,制表符)或者完整的字符结束,会停止扫描
nextLine() ,扫描整行(这行无论有什么)。

2.使用nextLine()之前不能使用扫描基本类型的方法或者next(),因为会在内存缓冲区遗留下
来的回车换行符,nextLine()会进行误读。

3.推荐使用next方法。


Math类 java.lang
Math类是针对数学运算操作的工具类.
Math的构造器私有化。里面所有的方法都是static修饰的。

----------------------------
Math.random()
? ? ? ? ? 返回带正号的 double 值,该值大于等于 0.0 且小于 1.0。[0.0,1.0)

//生成0-9的随机一个整数
int r=(int)(Math.random()*10+0);
//生成1-100的随机一个整数
int r=(int)(Math.random()*100+1);
//生成5-8的随机一个整数
int r=(int)(Math.random()*4+5);

生成随机数的技巧:
(int)(Math.random()*a+b)

  • a:这个范围总共含有多少个数
  • b:这个范围起始值数字。

写一个猜1-100之间数字的小程序

会用到生成随机数Math.random()和接收键盘Scanner(System.in)输入。

public class Demo {
    public static void main(String[] args) {
        method();
    }


    private static void method() {
        //随机生成一个1~100之间的整数
        int num = (int)(Math.random() * 100 + 1);

        //创建一个扫描器对象
        Scanner sc = new Scanner(System.in);

        //创建玩家猜数字的范围变量
        int start = 1;
        int end = 100;

        while (true) {
            //扫描键盘录入的整数
            System.out.println("请键盘输入一个" + start + "~" + end + "范围内的整数:");
            int value = sc.nextInt();

            //进行健壮性判断
            if (value < start || value > end) {
                System.out.println("你猜数字有误,请重新输入数字......");
                continue;
            }

            //进行数据的比较
            if (value > num) {
                System.out.println("很遗憾,你猜的数字太大啦,请重新选择数字......");
                end = value - 1;
            } else if (value < num) {
                System.out.println("很遗憾,你猜的数字太小啦,请重新选择数字......");
                start = value + 1;
            } else {
                System.out.println("恭喜你,猜中啦,中午可以加个鸡腿!!!");
                break;
            }
        }

        //关闭资源
        sc.close();
    }

}

Arrays类??java.util
针对数组操作的工具类。
构造器私有化,类里所有的方法都是静态方法。

--------------------------
toString(int[] a)?
? ? ? ? ? 返回指定数组内容的字符串表示形式。

binarySearch(int[] a, int key)?
? ? ? ? ? 使用二分搜索法来搜索指定的 int 型数组,以获得指定的值。


copyOf(int[] original, int newLength)?
? ? ? ? ? 复制指定的数组,截取或用 0 填充(用默认值填充0或null),以使副本具有指定的长度


基本类型元素的数组,根据数值大小排序(boolean除外)
sort(int[] a)?
? ? ? ? ? 对指定的 int 型数组按数字升序进行排序。

-------------------------------------
sort(Object[] a)?
? ? ? ? ? 根据元素的自然顺序对指定对象数组按升序进行排序。
字符串类型元素数组排序,会根据字符串中字符内容的unicode码表中的数值大小升序排序
针对自定义类型(Student)对象元素数组排序,必须手动定义“比较规则”。
比较规则
?? ?1.自然顺序比较器 Comparable
?? ?2.指定顺序比较器Comparator

sort(T[] a, Comparator<? super T> c)?
? ? ? ? ? 根据指定比较器产生的顺序对指定对象数组进行排序。


System类 ?java.lang
构造器私有化,类里所有的方法都是静态方法。

System 类有 3 个静态成员变量,分别是 PrintStream out、InputStream in 和 PrintStream err

 public final static PrintStream out = null;//标准输出流
 public final static InputStream in = null;//标准输入流
 public final static PrintStream err = null;//标准的错误输出流

gc()//运行垃圾回收器

? ? ? ? 该方法的作用是请求系统进行垃圾回收,完成内存中的垃圾清除

获取当前毫秒值

 //1970 年 1 月 1 日午夜之间的时间差,返回以毫秒为单位的当前时间   
 public static native long currentTimeMillis();

获取当前纳秒值

//返回最准确的可用系统计时器的当前值,以毫微秒为单位。纳秒
public static native long nanoTime();

BigInteger ? java.math
应用时机:超过long的取值范围,创建比Long范围还大的整数。

    public static void main(String[] args) {
        //构造器public BigInteger(String val)
        BigInteger  big1 =new BigInteger ("12121213121212131231313131");
        BigInteger  big2=new BigInteger ("1");
        System.out.println(big1 .add(big2));//12121213121212131231313132
    }

?BigDecimal ?java.math?
不可变的、任意精度的有符号十进制数。
应用机制:任意精度的浮点数

    public static void main(String[] args) {
        double d1=2.0;
        double d2=1.1;
        //Java中浮点数(double、float)的计算是非精确计算
        System.out.println(d1-d2);//0.8999999999999999
        System.out.println("=================");
        BigDecimal b1 = new BigDecimal(2.0);
        BigDecimal b2 = new BigDecimal(1.1);
        System.out.println(b1.subtract(b2));//0.899999999999999911182158029987476766109466552734375

        System.out.println("=================");
        BigDecimal b3 = new BigDecimal("2.0");
        BigDecimal b4 = new BigDecimal("1.1");
        System.out.println(b3.subtract(b4));//0.9
    }

运行结果:

  开发工具 最新文章
Postman接口测试之Mock快速入门
ASCII码空格替换查表_最全ASCII码对照表0-2
如何使用 ssh 建立 socks 代理
Typora配合PicGo阿里云图床配置
SoapUI、Jmeter、Postman三种接口测试工具的
github用相对路径显示图片_GitHub 中 readm
Windows编译g2o及其g2o viewer
解决jupyter notebook无法连接/ jupyter连接
Git恢复到之前版本
VScode常用快捷键
上一篇文章      下一篇文章      查看所有文章
加:2022-04-15 00:19:38  更:2022-04-15 00:23:38 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 4:44:29-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码