1)int类型最常用 2)表示地球上的人数,就要用long型了 3)byte和short类型主要用于特定场合 4)Java中整型的范围与运行Java代码的机器无关。这就解决了软件在不同平台或同平台不同操作系统间移植的问题。由于Java程序必须保证在所有机器上都能够得到相同的运行结果,所以每种数据类型的取值范围必须固定。 5)长整型数值有一个后缀L(如4000000000L) 6)十六进制数有一个前缀0x(如0xCAFE) 7)八进制数有一个前缀0(如010) 8)二进制数有一个前缀(如0b1001,就是9) 【Java7开始】 9)可以为数字字面量加下划线,,(如1_000_000或0b1111_0100_0010_0000 表示1百万),只是为了更易读,Java编译器会去除这些下划线。 10)Java没有任何无符号类型(unsighed)
1)double表示这种类型的数据精度是float类型的两倍,绝大部分应用程序都采用double类型 2)只有很少情况下,使用使用float类型 3)float类型的数值有一个后缀F(如3.14F),没有后缀F的浮点数值(如3.14)默认为double型 4)三个特殊的浮点数值 ---- 用于表示溢出和出错的情况 a)正无穷大 ---- 对应常量Double.POSITIVE_INFINITY 一个正整数除以0的结果为正无穷大 b)负无穷大 ---- 对应常量Double.NEGATIVE_INFINITY c)NaN(不是一个数字) ----- 对应常量Double.NaN 0/0或者负数的平方根结果为NaN 5)所有非数值的值都是不相同的,可以使用Double.isNaN方法来检验某个值是否为NaN if(Double.isNaN(x)) 而不能使用如下方式检验 if(x==Double.NaN) 6)如果需要在数值计算中不含任何舍入误差,就用该使用BigDecimal类
2)强烈建议不要在程序中使用char类型,最好将需要处理的字符串用抽象数据类型表示。
1)上图6个实心箭头,表示无信息丢失的转换。有三个虚箭头,表示可能有精度损失的转换。 当两个数值进行二元操作时,先要将两个操作数转换为同一种类型,然后再进行计算。 如果两个操作数中有一个是double类型,另一个操作数就会转换为double类型。 否则,如果其中一个操作数是float类型,另一个操作数将会转换为float类型。 否则,如果其中一个操作数是long类型,另一个操作数将会转换为long类型。 否则,两个操作数都会被转换成int类型。
public class InputTest {
public static void main(String[] args) {Scanner in = new Scanner(System.in); //构造一个Scanner对象,并于标准输入流关联System.out.print("What's your name?");String name = in.nextLine(); //输入一行System.out.print("How old are you?");int age = in.nextInt(); //输入一个整型数值System.out.println("Hello, " + name + ". Next year, you'll be" + (age + 1));}
}
package corejava;import java.io.FileNotFoundException;import java.io.IOException;import java.io.PrintWriter;import java.nio.file.Paths;import java.util.*;public class FileInOutput {public static void main(String[] args) throws FileNotFoundException,IOException {
//PrintWriter out = new PrintWriter("F://Java//corejava//book.txt"); 绝对路径写法PrintWriter out = new PrintWriter("book.txt"); //相对路径写法out.println("code complete");out.println("Spring in action");out.close();//Scanner in = new Scanner(Paths.get("F://Java//corejava//book.txt"));Scanner in = new Scanner(Paths.get("book.txt"));String book1 = in.nextLine();String book2 = in.nextLine();in.close();System.out.println("book1:" + book1);System.out.println("book2:" + book2);System.out.println(System.getProperty("user.dir")); //Java虚拟机启动路径为F:/Java/corejava/ 因此上面的绝对路径和相对路径写法是等价的。}
}3.8 控制流程
1)块(即复合语句),是指由以对花括号括起来的若干简单的Java语句。2)块确定了变量的作用域3)一个块可以嵌套在另一个块中,但是不能在两个嵌套的块中声明同名的变量。
import java.math.BigInteger;
public class BigIntegerTest {3.10 数组public static void main(String[] args) {BigInteger a = BigInteger.valueOf(5);BigInteger b = BigInteger.valueOf(6);BigInteger c = a.add(b);BigInteger d = a.multiply(b);System.out.println(c);System.out.println(d);}}
public class CommandLineArgs {
public static void main(String[] args) {// TODO Auto-generated method stubSystem.out.println(args.length);for(String s:args){System.out.println(s);}
}}java CommandLineArgs -jrr tmac -lbj
import java.util.Arrays;public class SortTest {
public static void main(String[] args) {// TODO Auto-generated method stubint[] a = {1,3,2,5,9,7};System.out.println(Arrays.toString(a));Arrays.sort(a); //采用优化的快速排序法,对数组进行排序System.out.println(Arrays.toString(a));}
}
Arrays.binarySearch
新闻热点
疑难解答