????????在介绍java中,我会去书写一些java语言与C++的不同点。
目录
类型 | 字节数 | 数据范围 |
byte | 1 | -128~127 |
short | 2 | -32768~32767 |
int | 4 | -2147483648~2147483647(2*10^9) |
long | 8 | -9223372036854774808~9223372036854774807(9*10^18)例如:1324323L(表示常数L) |
float | 4 | 精度6~7位? 例如:1.2F,与c++相同 |
double | 8 | 精度15~17位 例如:1.2,1.2D(1.2默认类型为Double) |
boolean | 1 | true、false |
char | 2 | 'A' 根据ASCLL存储 |
????????除了基本数据类型之外,Java提供了Integer对int的封装类,Java还提供了BigDecimal
类来处理高精度小数。BigDecimal
类可以表示任意精度的小数,其小数位数不受限制,可以满足各种计算需求。?
注意:与C++不同的
1、java中的long类型相当于c++中的long long类型
2、java中有2个字节,而c++中的char只有1字节
3、java中int类型没有boolean的属性,c++中数字0表示false,其他表示true等
????????????????使用final修饰常量,相当与c++中的const
????????????????显示转化:与c++相同,int d=(int)3.1415;
????????????????隐式转换:与c++不同,只能从高精度转为低精度。
注意:int a=3.14*5,在java中会报错,在c++中会得到15的结果
????????????????表达式:与c++基本相同。如:int a=b*c+d;
注意:java中不能使用a=b,c=d....;会报错。
? ? ? ? ? 正确写法
??????????a=b;
? ? ? ? ? c=d;
? ? ? ? ? .....
? ? ? ? ? 当然,在申明变量时,如:int a=1,b=2,c=10;这样是支持的。
//这种是快速输入,输入时的效率不高,相当于c++中cin
import java.util.Scanner;
Scanner sc=new Scanner(System.in);
//输入字符串
sc.next()
sc.nextLine()//最为特殊,会接受无效字符,其他输入形式都不会。
//输入数字类型---与sc.next()的接受方式相同,只接受有效字符,不接受无效字符(enter、blank、tab)
sc.nextByte();
sc.nextShort();
sc.nextInt();
sc.nextLong();
sc.nextBigInteger();
//输入浮点类型
sc.nextFloat();
sc.nextDouble();
//输入boolean类型
sc.nextBoolean();
?注意:next()和nextLine()的区别
? ? ? ? ? ?1、next()只接受有效字符串,当有效字符前有无效字符(tab、blank、enter)会直到接收到有效字符,之后遇到无效字符会结束。如:输入“? ? ?hello world",输出:“hello”
? ? ? ? ? ?2、nextLine()接受一行字符串,当遇到enter时,会结束。
//next()不会接受enter等无效字符 String str1=sc.next(); String str2=sc.nextLine(); 输入 chenzihao hello world 输出 chenzihao null
import java.io.BufferedReader;
import java.io.InputStreamReader;
//较为高效的输入方法,相当于c++中scanf
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
//读入一行,与sc.nextLine()有相同的性质,会接受无效字符
br.readLine();
//读入一个字符,返回它的ASCLL值
br.read();
//读入数字的方法
//一个数字
String a=br.readLine();
Integer c=Integer.parseInt(a);
//多个数字,使用blank隔开
//Double.parseInt()、Float.paraseFloat()
//其他类型转换为字符串:Integer.toString()、Double.toString();
String[] str=br.readLine().split(" ");
for(String a:str){
System.out.println(Integer.parseInt(a));
}
br.close();
//普通的输出
//前两种区别便是是否输出后换行
System.out.println();
System.out.print();
//相当于c++中printf,区别便是在输出浮点数时,java只有%f。无论float还是double
System.out.printf();
//样例
System.out.printf("%04d %.2f",x,avg);
import java.io.BufferedWriter
import java.io.OutputStreamWriter;
//对System.out.println()的优化
BufferedWriter bw=new BufferedWriter(new OutputStreamWriter(System.out));
//输出字符串
bw.write(str);
//追加字符串
bw.append(str);
//输出字符格式
bw.write(str,off,len);
//输出数字类型
Integer t=1314;
bw.write(t.toString());
//换行
bw.newLine();
//刷新缓冲池
bw.flush();
//关闭输出流
bw.close();
//与c++唯一的区别,便是int中的0或者1不能当作条件判断
//错误演示
int a=1;
if(a) System.out.println(a); ?
//正确演示
int a=1;
if(a!=0) System.out.println(a); √
//与c++中相同
package com.acwing;
import java.util.Scanner;
public class Demo02{
public static void main(String[] args){
Scanner sc=new Scanner(System.in);
Integer day=sc.nextInt();
String ans="";
switch(day){
case 1:
ans="Monday";
break;
case 2:
ans="Tuesday";
break;
case 3:
ans="Wednesday";
break;
case 4:
ans="Thursday";
break;
case 5:
ans="Friday";
break;
case 6:
ans="Saturday";
break;
case 7:
ans="Sunday";
break;
default:
ans="输入错误,请输入1~7的数字";
break;
}
System.out.println(ans);
}
}
作者累了,要休息几天在更新。。。。敬请期待。