Allureluoli 二月FEBRUARY

JAVASE _1

C语言
贴近硬件,运行快,效率高
操作系统,编译器,数据库,网络系统 【非常严格】
指针和内存管理

1982 C++ 【非常复杂的特性】【需要非常多的底层知识】
面向对象
兼容C
图形领域,游戏

JAVA
语法像C
没有指针
没有内存管理
真正的可移植性,到处运行()
面向对象
类型安全
高质量类库
层叫 C++ –

JAVA初生

图形界面程序 Applet

Java 2 桌面 J2SE

Java 2移动版 J2ME 占领手机

Java 2服务器 J2EE


构建工具:Ant,Mavern,Jekins

应用服务器:Tomcat,Jetty,Jboss,Websphere,weblogic

Web开发:Struts,Spring,Hibernate,myBatis

开发工具:Eclipse,Netbean,intellij ideam,JbUILDER

2006: Hadoop

2008: Android


JAVA特性和优势

简单性

面向对象

可移植性

高性能

分布式

动态性 反射机制

多线程

安全性

健壮性 通过捕获异常来解决异常

【心态】:去学习的过程中爱上它,这样才能主动学习

JAVA的成功:实力 + 运气 找到了互联网发展的节奏


JAVA三大版本

Write Once \Run Anywhere (虚拟机)

JavaSE:标准版 (桌面程序,控制台开发)

JavaME: 嵌入式开发 (手机,小家电) 【冷门】

JavaEE: E企业级开发 (web端,服务器开发)


JDK包含 JRE 全称:Java Development Kit [工具]

JRE 全称 : Java Runtime Environment [运行]

JVM: 全称 JAVA Virtual Machine [虚拟机]

通过虚拟机屏蔽了底层数据的差别

JAVA SE API 【接口】


JAVA开发环境搭建

  • JDK下载与安装
  • JDK 卸载 :

​ 1.删除JAVA安装目录

​ 2.删除变量 (电脑属性,环境变量,path)

​ 3.java -version

  • 安装JAVA

    1. 搞到安装包

    2. 设置JAVA_HOME

    3. 设置path变量

    4. (%表示引用)

  • 测试 java -version

  • src.zip 中有java源码

  • lib为库

  • include为C的头文件目录


我的JAVA对世界的第一声呐喊

1
2
3
4
5
 java public class Hello {  //类名
public static void main(String[]args){ //方法
System.out.print("Hello,World!");
}
}

源码如上


承接上文 在搞完了之后爷就遇到了+编码问题

所幸在之前的RWmod开发中早已经遇到过类似的,便直接上网求证,很快解决了。

原因为txt的UFT-8中是带ROM的,而 javac是无法识别带ROM 的UFT-8

只好安装了一个Notepad++,将编码修改后,便可以正常运行了。

唔,以后池沼开发一个自己的编译器,这个用着真不舒服。。


解决问题的网址

https://blog.csdn.net/White_Idiot/article/details/54670243

同时学到了一条新命令

javac -encoding “UTF-8” FirstSample.java

通过指定编码的方式运行javac


注意事项

  • 大小写问题
  • 中英文问题

使用IDEA开发环境

新建方法 -新建类 - 快捷键 (待补充)


JAVA基本语法

  1. 注释、标识符
  2. 数据类型
  3. 类型转换
  4. 变量、常量
  5. 运算符
  6. 包机制、JavaDoc

IDEA的项目设置五大类

  • Project 项目

    |name | SDK | Language level | Compiler output ps:

    1
    名称	  |   工具   |   语言等级 		  |   输出文件夹       

​ 输出文件夹 ps: Used for modules subdirectories, Production and Test directories for the corresponding sources.

​ 翻译:用于相应源的模块子目录、生产目录和测试目录。

  • Modules 模块

    Name: 模块的名称 Add Content Root(添加新的内容根)

    Sources | Paths | Dependencies

    源 | 路径 | 依赖关系

Sources : Language level

文件夹标记

Mark as: Sources \blue\ Tests \green\ Resources\资源\ Test Resources\测试资源\ Excluded\排除\

Paths : Compiler Output (编译器输出):Inherit project compile output path(和项目输出路径相同)

​ :Use module compile output path (使用模块编译输出路径)

JavaDoc:Manage external JavaDocs attached to this module, External JavaDoc override Javadoc override Java DOc annotations you might have in your module.(管理附加到此模块的外部JavaDoc,外部JavaDoc覆盖模块中可能有的JavaDoc注释。)

  • Libraries 图书馆

​ Nothing to show(没啥可展示的)

​ 右侧 Select a library to view or edit its details here (在此处选择要查看或编辑其详细信息的库)

  • Facets 面

    No facets are configured(没有配置的面)

    Detection (检查)

    右侧 :Enable framework detection(启用检测框架)

    ​ Exclude from detection(排除在检测外)

  • Artifacts

即编译后的Java类,Web资源等的整合,用以测试、部署等工作。再白话一点,就是说某个module要如何打包,例如war exploded、war、jar、ear等等这种打包形式。某个module有了 Artifacts 就可以部署到应用服务器中了。

注释

// 单行注释

/* */ 多行注释


关键字

abstract assert bollean break byte
case catch char calss conse
continue default do double else
enum extends final finally float
for goto if implements import
instanceof int interface long native
new package private protected public
return strictfp short static super
switch synchronized this throw throws
transient try void volatile while
1
2
3
4
5
6
7
8
9
10
11
public class calss1 {
public static void main(String[] args) {
String qwq ="233"; //qwq为标识符,以小写字母开头
String QAQ = "233";//大写字母
String $qwq = "233";//美元符号
String _QWQ = "233";//下划线
String 傻逼 = "233";//中文命名
}
}

//标识符是大小写敏感得

JAVA 数据类型

JAVA为强类型语言

  • 要求变量的使用严格符合规定,所有变量必须先定义后使用

    弱类型就反之了(例:VB,JS )

JAVA的数据类型分为两大类

  • 基本类型 primitive type

    1. 整数类型: byte1个字节范围 short 2个字节范围 int 四个字节范围 long 8个字节范围
    2. 浮点类型 : float 占四个字符范围 double 占8个字符范围
    3. 字符类型: char 占两个字节
    4. boolean类型:占1位,只有true 和 false
  • 引用类型 reference type :类、接口、数组


变量需要初始化 = 变量需要定义

int 和 String 都是类型

int 整数 String 字符串

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
import java.sql.SQLOutput;

public class calss2 {
public static void main(String[] args) {
// 整数扩展: 进制 二进制 八进制 十六进制
int i = 10; //
int i2 = 010; // 八进制
int i3 = 0x10; //十六进制 0x开头

System.out.println(i);
System.out.println(i2);
System.out.println(i3);
System.out.println("-------------------------------------------");
//-------------------------------------------
//浮点数扩展: 有限 离散 舍入误差 大约 接近但不等于
//最好减少使用浮点数进行表示和比较 ,由于浮点数字长有限所以有误差得
//float(浮点数)
float f =0.1f; //0.1
double d= 1.0/10; //0.1
System.out.println(f==d);
//字符扩展
char c1 ='a';
char c2 ='中';
System.out.println(c1);
System.out.println((int)c1);//强制换行
System.out.println(c2);
System.out.println((int)c2);//强制换行
//所有字符本质还是数字
//编码 Unicode 表:97 = a 2字节 65 =A
// U0000 UFFFF 为Unicode编码格式
char c3 ='\u0061'; //一个Unicode字符进行转换
System.out.println(c3);
//转义字符 \t 制表符
// \n 换行
// 更多转义字符待查
System.out.println("-------------------------------------------");
String sa = new String("Hello");
String sb = new String("Hello");
System.out.println(sa==sb);//判断相等 “==” //判断为不相等

String sc = "Hello";
String sd = "Hello";
System.out.println(sc==sd); //识别为相等
//对象
//布尔值扩展
boolean flag = true;
if (flag==true) {}
if (flag){} //默认是等于true
} //Less is more! 代码精简易读


}
}


字节

位(bit)

字节(byte)

1B = 8BIT

字母:指的是计算机中的字母、数字、字和符号。

电脑32位和64位的区别,寻指的能力,可以装的内存不同,


类型转换

  • 由于JAVA是强类型语言。所以进行有些运算的时候,需要用到类型转换。

    低 ——————————————>高

    byte , short ,char -> int -> long -> float -> double

    • 运算中,不同类型的数据先转换为同一类型,然后进行运算。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
public class calss3 {
public static void main(String[] args) {
int i =128;
byte b = (byte)i;//强制转换 byet最大值为127 ,所以内存溢出了。输出值变成了-128 //高-->低
//自动转换 低--高
System.out.println(b);
/*
1.不能对布尔值进行转换
2.不能把对象类型转换为不相干的类型
3.在把大容量转换为低容量的时候,强制转换
4.转换的时候可能存在内存溢出
*/
System.out.println("---------------------");
System.out.println((int)23.7); //23 会导致精度问题
System.out.println((int)-45.89f); //-45
char c ='a';
int d = c+1;//转换成了int形式,低向高自动转换
System.out.println(d);
System.out.println((char)d);//强制转换为字符,输出为b
}

1
2
3
4
5
6
7
8
9
10
11
12
public class class4 {
public static void main(String[] args) {
//操作比较大的数的时候,注意溢出问题
//JDK7新特性,数字直接可以用下划线分割
int money = 10_0000_000;
int years = 20;
int total = money*years; // 输出后返回的为数字,计算的时候溢出了
long total2 = money*years;//默认为Int,转换之前已经存在问题了,所以无用
long total3 = money*((long)years);//先把一个数转换为long,则整个表达式提升,全部用Long计算,则不会内存溢出,就没事了。
System.out.println(tota3);
}
}

变量

变量定义:可以把变化的量。

JAVA是一种强类型语言,每个变量都必须声明其类型。

JAVA变量是程序中最基本的存储单元,其要素包括变量名变量类型和作用域。

变量划分内存的空间

  • 作用域:

    • 类变量
    • 实例变量
  • 局部变量


  • 格式

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
      type varname	[=value] [{,varName[=value]];
    //数据类型 变量名 =值;可以用逗号隔开来声明多个同类型变量。
    //ps:老师不建议在一行里定义多个值,会看起来比较复杂。

    ```java
    public class class5 {
    public static void main(String[] args) {
    //int a,b,c; //定义a b c 为int类型
    //int a=1,b=2,c=3; //定义a,b,c三个的量,但是程序可读性不好
    int a=1;
    int b=2;
    int c=3; //单独定义可读性会好
    String name ="23333"; //定义一个name为字符串
    char x = 'X'; //定义x为一个字符
    double pi =3.4; //定义pi为一个数字
    }
    }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
public class class08 {
static double salary = 2500;//加前期变量都加static,这个static定义了一个变量

//实例变量:从属于对象,如果不自行初始化,这个类型的默认值则为0 或0.0;所以14行输出了一个0
//字符串初始化为16位的0000....,布尔值默认为false
//除了以上的基本类型,其他的初始值都为null
String name; //变量在类里
int age;
//属性:变量
//main 方法
public static void main(String[] args) {

int i=10;//定义一个i为局部变量,只能在此处使用,且初始化值。
System.out.println();
// 变量类型 变量名字 = new class08 ,相当于把自己拿到了。
class08 class08 =new class08();
System.out.println(class08);//输出class08@1b6d3586
System.out.println(class08.age);//输出0
System.out.println(class08.name);//输出null
}
//其他方法
public void add(){

}
}

  • 常量 (Constant):初始化 (initialize)后不能再改变值!不会编队的值。
  • 所谓常量是一种特殊的变量,它的值被设定后,在程序运行过程中不允许被改变。

格式: ps:常量名一般使用大写字符

1
final 变量名 值;
1
2
3
4
5
6
7
8
public class class09 {
//修饰符,不存在先后顺序 指final static double PI ,,等号之前的这些东西(但是谁=谁要定义好了)。
final static double PI = 3.14; //定义了一个静态的常量PI

public static void main(String[] args) {

}
}

变量的命名规范

  • 所有变量、方法、类名:见名知意。
  • 类成员变量:首字母小写和驼峰原则:monthSalary 除了第一个单词以外,后面的单词首字母大写
    • 例 lastname lastName
  • 局部变量:首字母小写和驼峰原则
  • 常量:大写字母和下划线:MAX_VALUE
  • 类名:首字母大写和驼峰原则:Man,GoodMan
  • 方法名:首字母小写和驼峰原则:run(),runRun()

运算符

JAVA语言支持如下运算符:

  • 算数运算符:+,-,*,/,%(取余=模运算),++,–
  • 赋值运算符: =
  • 关系运算符:>,<,>=,<=,==(相等),!=(不等于),instanceof
  • 逻辑运算符:&&,||,! (与,或,如果是真则为假,如果是假则为真)
  • 位运算符:&,|,^,~,>>,<<,>>>(了解!!!)
  • 条件运算符?:
  • 扩展赋值运算符:+=,-=,*=,/=

IDEA创建包和MOVE

点击src 右键 new —> Package

此时弹出一个窗

Move : 项目名

To directory: 路径

Search in comments and strings (在字符串中搜索)

Search for text occurrences (所属出现的文本) //这两位默认勾选暂时不管

Open in editor(在编辑器中打开(也叫开放编辑)) //此处勾选即可

                                                         Refactor     Preview     Cancel

一次移动多个文件会出现 Refactoring Preview(重构预览)

点击 Do Refactor 即可 ps:原来这tm是个报错


1
2
3
4
5
6
7
8
9
10
11
12
13
14
package base2;

public class class2 {
public static void main(String[] args) {
long a= 12312345623156415L;
int b =123;
short c = 10;
byte d = 8;
System.out.println(a+b+c+d);//有一个数字类型为long则结果类型也为long,如果没有long则结果都为int,(待求证的理解)默认类型为int类型,加入其他类型后,加什么则跟什么,那么同时加了俩会怎么样呢?
// System.out.println((String) (c+d)); //触发报错:incovertible tpyes cannot cast 'int' to 'java.lang.String'
//无法将 int 类型转换为 String类型
}
}

自增

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
package base2;

public class class4 {
public static void main(String[] args) {
//++ -- 自增,自减 一元运算符
int a = 3; //定义a为3
int b =a++; //就是 a给自己加个1 (a+1)
System.out.println(a);//这个回合自增了一下//输出4 因为此时的a已经加了个1
System.out.println(b); //输出3 也就是说b的值就是a的值,但b的值不是a++的值,a++仅是为了给a再次赋值,让a加1
int c =++a; //自增后给c赋值 这个才是赋值回合
System.out.println(a);//这个回合再次自增 输出5,c在原先a++的基础上,再次++a
System.out.println(b);//输出3
System.out.println(c);//输出5 ps: ++是自增,b = a++ b=a=3 和a++这个a的自增是没有关系的,只是++刚好在b=a这个赋值的时候
System.out.println(c);//输出5 ps: 而 c =++a 将++放在了前面,则就是c = 再次自增的a
//话不多说测试一波
int f = ++c; //那么这个f 按照我的理解,f等于 自增后的c,那么输出应该等于6。测试一波
System.out.println(f); //输出为6 ,没有问题
//接着测试一波,g = f ++ ,按照我的理解,g = 6 ,f 在这条语句后变成了7
int g = f++;
System.out.println(g);
System.out.println(f);//over 没有问题~~~
//幂运算 //这些运算可以使用工具【类】来进行操作,java中有很多的类
double pow = Math.pow(2,3);//Math类提供了很多的科学计算和常数捏
System.out.println(pow);
}
}

逻辑

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
package base2;
//逻辑运算符
public class class5 {
public static void main(String[] args) {
// 与(and) 或(or) 非(取反)
boolean a =true;
boolean b =false;
System.out.println("a %% b :"+(a&&b));//逻辑与运算:两个变量都为真,结果才为真,因为只有a是真所以输出假
System.out.println(" a || b:"+(a||b));//逻辑或运算:两个变量有一个为真则结果为真,因为有一个a是真所以结果是真
System.out.println("!(a && b:)"+!(a&&b));//如果是真,则变为家,如果是假则变为真,因为只有a是真,所以应该输出假,但是取反,输出真
//短路运算
int c = 5;
boolean d = (c<4)&&(c++<4);
System.out.println(d);//这里输出了假,由于短路运算,在检测到假后后面的就不去考虑了,所以c++并没有运行,c的值还是4
System.out.println(c);//这里c仍然是5

//字符串的连接
System.out.println("23333"+"woc666");//字符串在输出中可以用加号连接捏
}
}

位运算符

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
package base2;

public class class6 {
public static void main(String[] args) {
/*
A = 0011 1100
B = 0000 1101
A&B = 0000 1100 //两个都是1 才能得1(和相乘差不多)
A|B = 0011 1101 //只要一个为1,则就是1 1|0=1酱紫得
A^B = 0011 0001 //两个位置,相同则为0,否则则为1
~B = 1111 0010 //取反,就是反过来啦~

面试题:2*8 怎么运算最快?
拆分到 2*2*2*2 正常运算需要电路,这个只需要增量(hhh记下来)
<< 左移 相当于乘2
>> 右移 相当于除2 (算法中效率贼高~~~)

0000 0000 0
0000 0001 1
0000 0010 2
0000 0011 3
0000 0100 4
0000 1000 8
0001 0000 16




*/

}
}

扩展运算符(偷懒计算(bushi))

1
2
3
4
5
6
7
8
9
10
11
12
13
package base2;

public class class7 {
public static void main(String[] args) {
int a = 10;
int b = 10;
a+=b; //a+=的意思就是a= a+b
a-=b; // 意思为a = a-b
//字符串连接
System.out.println(""+a+b);//如果字符串连接符出现了前面,则后面所有的都会转换为String类型
System.out.println(a+b+"");//正常运算,因为字符串连接符在后面
}
}

三元运算符

1
2
3
4
5
6
7
8
9
10
11
12
package base2;

public class class8 {
public static void main(String[] args) {
// x ? y : z
// 意思为 如果 x==true,则结果为y,否则结果为z
int score =80;
String type = score <60 ? "不及格":"及格";
System.out.println(type);
}
}

ps :为了方便代码的使用和理解多打括号()

包机制

  • 为了更好的组织类,JAVA提供了包机制,用于区别类名的命名空间。
  • 包语句的语法格式为:
1
package pkg1[. pkg2[. pkg3...]];
  • 一般利用公司域名倒置作为包铭;例:com.baidu.www
  • IDEA创建包会帮忙写好所属的包名:package xxxx;
  • import xxxx.xxx.xx;使用包

快捷键 Alt + 回车 (生成错误信息) 然后自动找包~~爱了爱了~

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
package base2;

import java.util.Date;//这玩意必须在package的下面
//import xx.xx.xx就是路径,导入包,也可以导入自己的源码~~

public class class8 {
public static void main(String[] args) {
// x ? y : z
// 意思为 如果 x==true,则结果为y,否则结果为z
int score =80;
String type = score <60 ? "不及格":"及格";
System.out.println(type);

}
}

骚操作 import xx.xx.xx.* 会将第四个包下的所有类全导入进来捏

Java Doc

  • 作用:生成自己的API文档

  • 参数信息:

    • @author 作者名
    • @version 版本号
    • @since 指明需要最早使用的jdk版本
    • @param 参数名
    • @return 返回值情况
    • @throws 异常抛出情况
  • 官方帮助文档得地址捏:docs.oracle.com/javase

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
package base2;

/**
* @author allure
* @version 1.0
* @since 1.8
*/

public class doc {
String name;

/** //** +回车就星了
*
* @param name
* @return
*/



public String test(String name){
return name;
}
}

关于DIEA右键的翻译

Find Usages | 搜索用法
Analyze |分析
Refactor |重新构建
——
Bookmarks |书签
——
Browse type Hierarchy|浏览类型层次结构
Reformat Code |格式化代码
Optimize Imports |优化包引用
Delete |删除
Override File Type |覆盖文件类型
——
Build Module |构建模块
——
Open in Right Split |从右边打开
Open in |打开

——
Local History |历史记录
Repair IDE |修复IDE
Reload from Disk |从磁盘重新加载
——
Compare With |与…比较
Compart File with Editor |将文件与编辑器比较
——
Diagrams |图表
——
Convert java File to Kotlin File|将Java文件转换为Kotlin文件

javadoc的CMD命令

javadoc -encoding UFT-8 -charset UTF-8 xx.java

​ -编码 参数 -字符 参数 xxx.java

使用IDEA生成javadoc

  1. 点击上方的Tool
  2. 点击Generate JavaDoc
  3. Out put directory: 则是生成的文档的路径捏
  4. 设置各项参数 Loacale:填写zh_CN可以指定以中文格式生成捏
  5. Other command line arguments: 输出配置 就是cmd javadoc 后面写的那些了~~呐呐

JAVA流程控制

  1. 用户交互Scanner
  2. 顺序结构
  3. 选择结构
  4. 循环结构
  5. Break & continue
  6. 练习
  • Scanner 对象

  • 通过Java给我们提供的工具类,我们可以获取用户的输入。java.util.Sacnner 是Java5的新特征,我们可以通过Scanner类来获取用户的输入。

  • 基本语法:

1
Scanner s = new Scanner(System.in);
  • 通过Scanner类的next()与nextLine()方法获取输入的字符串,在读取前我们一般需要使用 hasNext()与hasNextLine()判断是否还有输入的数据。

next接收

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
package scanner;

import java.util.Scanner;

public class class1 {
public static void main(String[] args) {
//创建一个扫描器对象,用于接收键盘数据
Scanner scanner = new Scanner(System.in); //接收用户的输入 并封装成scanner对象
System.out.println("使用next方式接收:");
///判断用户有没有输入字符串
if (scanner.hasNext()) {//默认这个里面为判断==true
//使用next的方式接收
String str = scanner.next(); //程序等待用户输入完毕
System.out.println("用户输入的内容为" + str);
}
//凡是始于IO流的类如果不关闭会一直占用资源,要养成好习惯用完就关掉。
scanner.close();
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
package scanner;

import java.util.Scanner;

public class calss2 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("使用nextLine方式接收:");
//关闭程序的语句
if (scanner.hasNextLine()){//调用呐呐呐
String str = scanner.nextLine();//等待语句运行
System.out.println("输出的内容为:"+str);//输出
}
scanner.close();//关闭程序的语句

}
}
  • next()

    1. 一定要读取到有效字符后才可以结束输出
    2. 对输入有效值字符之前遇到的恐怖,next()方法会自动将其去掉。
    3. 只有输入有效字符后才将其后面输入的恐怖作为分隔符或者结束符。
    4. next() 不能得到带有空格的字符串。
  • nextLine()

    1. 以Enter为结束符,也就说nextLine()方法是返回输入回车之前的所有字符。
    2. 可以获得空白。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
package scanner;

import java.util.Scanner;

public class calss3 {
public static void main(String[] args) {
//从键盘接收数据
Scanner scanner = new Scanner(System.in);
System.out.println("请输入数据:");
String str = scanner.nextLine();
System.out.println("输出的内容为:"+str);
scanner.close();
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
package scanner;

import javax.security.sasl.SaslClient;
import java.util.Scanner;

public class class4 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
//从键盘接收数据
int i = 0;
float f = 0.0f;
System.out.println("请输入整数:");
if (scanner.hasNextInt()){
i = scanner.nextInt();
System.out.println("整数数据:"+i);}else { //检测i是不是int类型,如果返回为false就走了else,如果不是就继续向下走
System.out.println("输入的不是整数数据");
}
System.out.println("请输入小数:");
if (scanner.hasNextFloat()){
f = scanner.nextFloat();
System.out.println("小数数据:"+f);}else { //检测i是不是float类型,如果返回为false就走了else,如果不是就继续向下走
System.out.println("输入的不是小数数据");
}
}
}

评论COMMENTS