【JAVA核心技术】数据类型&基础

Java数据类型

Java数据类型主要分为基本数据类型和引用数据类型

1.基本数据类型

序号数据类型大小/位封装类默认值可表示范围
1byte8-bitByte(byte)0-128~127
2short16-bitShort(short)0-32768~32767
3int32-bitInteger0-2147483648~2147483647
4long64-bitLong0L-9223372036854775808~9223372036854775807
5float32-bitFloat0.0F-1.4E-45~3.4028235E38
6double64-bitDouble0.0D4.9E-324~1.7976931348623157E308
7booleanbut its “size” isn’t something that’s precisely defined.Booleanfalsetrue或false
8char16-bitCharacter‘\u0000’(对应数字0,输出为空)0~65535

实例

对于数值类型的基本类型的取值范围,我们无需强制去记忆,因为它们的值都已经以常量的形式定义在对应的包装类中了。

public class PrimitiveTypeTest {  
    public static void main(String[] args) {  
        // byte  
        System.out.println("基本类型:byte 二进制位数:" + Byte.SIZE);  
        System.out.println("包装类:java.lang.Byte");  
        System.out.println("最小值:Byte.MIN_VALUE=" + Byte.MIN_VALUE);  
        System.out.println("最大值:Byte.MAX_VALUE=" + Byte.MAX_VALUE);  
        System.out.println();  
  
        // short  
        System.out.println("基本类型:short 二进制位数:" + Short.SIZE);  
        System.out.println("包装类:java.lang.Short");  
        System.out.println("最小值:Short.MIN_VALUE=" + Short.MIN_VALUE);  
        System.out.println("最大值:Short.MAX_VALUE=" + Short.MAX_VALUE);  
        System.out.println();  
  
        // int  
        System.out.println("基本类型:int 二进制位数:" + Integer.SIZE);  
        System.out.println("包装类:java.lang.Integer");  
        System.out.println("最小值:Integer.MIN_VALUE=" + Integer.MIN_VALUE);  
        System.out.println("最大值:Integer.MAX_VALUE=" + Integer.MAX_VALUE);  
        System.out.println();  
  
        // long  
        System.out.println("基本类型:long 二进制位数:" + Long.SIZE);  
        System.out.println("包装类:java.lang.Long");  
        System.out.println("最小值:Long.MIN_VALUE=" + Long.MIN_VALUE);  
        System.out.println("最大值:Long.MAX_VALUE=" + Long.MAX_VALUE);  
        System.out.println();  
  
        // float  
        System.out.println("基本类型:float 二进制位数:" + Float.SIZE);  
        System.out.println("包装类:java.lang.Float");  
        System.out.println("最小值:Float.MIN_VALUE=" + Float.MIN_VALUE);  
        System.out.println("最大值:Float.MAX_VALUE=" + Float.MAX_VALUE);  
        System.out.println();  
  
        // double  
        System.out.println("基本类型:double 二进制位数:" + Double.SIZE);  
        System.out.println("包装类:java.lang.Double");  
        System.out.println("最小值:Double.MIN_VALUE=" + Double.MIN_VALUE);  
        System.out.println("最大值:Double.MAX_VALUE=" + Double.MAX_VALUE);  
        System.out.println();  
  
        // char  
        System.out.println("基本类型:char 二进制位数:" + Character.SIZE);  
        System.out.println("包装类:java.lang.Character");  
        // 以数值形式而不是字符形式将Character.MIN_VALUE输出到控制台  
        System.out.println("最小值:Character.MIN_VALUE="  
                + (int) Character.MIN_VALUE);  
        // 以数值形式而不是字符形式将Character.MAX_VALUE输出到控制台  
        System.out.println("最大值:Character.MAX_VALUE="  
                + (int) Character.MAX_VALUE);  
    }  
}

数值自动转换

  • 转换原则:从低精度向高精度转换byte 、short、int、long、float、double、char
  • 数据类型的转换,分为自动转换和强制转换。自动转换是程序在执行过程中“悄然”进行的转换,不需要用户提前声明,一般是从位数低的类型向位数高的类型转换;强制类型转换则必须在代码中声明,转换顺序不受限制。

字符串

从概念上讲,Java字符串就是Unicode字符序列。

子串

String greeting = "Hello";
String s = greeting.substring(0,3);

拼接

当将一个字符串与一个非字符串的值进行拼接时,后者自动转换为字符串

int age = 13;
String rating = "PG" + age;

检测字符串是否相等

Java使用equals方法检测字符串的值是否相等s.equals(t)
string1 == string2表示两个字符串是否指向同一个对象

2.输入与输出

读取输入

Scaner in = new Scaner(System.in)
System.out.print("What is your name");
String name = in.nextLine();

格式化输出

double x = 1000.0
System.out.print("%8.2f",x);
//字符串格式化
String message = String.format("Hello,%s.Next year,you'll be %d",name,age);

文件输入与输出

文件读取

Scanner in = new Scanner(Path.of("myfile.txt"),StandardCharsets.UTF_8);
//错误写法,字符串会被单纯当做字符串
Scanner in = new Scanner("myfile.txt");

文件写入

PrintWriter out = new PrintWriter("myfile.txt",StandardCharsets.UTF_8);

3.控制流程

块作用域

public static void main(String[] args){
	int n;
	{
		int k;// k is only defined up to here
		int n;//ERROR--cant redefined n in inner block
	}
	
}

条件语句

if(condition) statement;

循环

while(condition) statement
do{}
while(condition)

//for each循环:collection必须时可迭代对象
for (variable:collection) statement

多重选择

switch(choice)
{
	case 1:
		...
		break;
	case 2:
		....
		break;
	default:
		...
		break;
}

大数
如果基本的整数和浮点数精度不能够满足需求,那么可以用java.math包中两个常用类BigIntegerBigDecimal

BigInteger a = Biginteger.valueOf(100);
BigInteger b = new Biginteger("332984729472924729497298")
//大数的计算需要使用对应类的方法
BigInteger c = a.add(b);

4.数组

//浅拷贝使用=
//以下是深拷贝
int[] copiedNumbers = Arrays.copyOf(luckynubers,luckynumbers.length)

多维数组

int[][] magicSquare = {{1,2,3},{4,5,6},{7,8,9};
for (double []row:a)
	for(double value:row)
		do something with value
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值