android基础学习-java篇day1-step1-第一节:java常量与变量

1.什么是带命令行参数?

例如:一个Hello.java文件

class Hello{
public static void main(String[] args){
System.out.println(args[0]);
}

}

代码中,主函数main()括号里面的String[] args 就是命令行参数,args是arguments(命令行参数)的缩写

在终端中用指令访问Hello.java的存储路径

第一步:编译 javac  Hello.java

第二版:执行 java   Hello  HelloWorld  (主要要空格)

终端输出:HelloWorld

args[0]:  类名(Hello)+第一个空格+字符串(HelloWorld)表示第一个空格后面的字符串

同理:args[1]、arg[2]。。。分别表示第几个空格后的字符串,如果写了args[n]但没有给它传入值,就会报空指针❌错误!

2.数据类型案例

整形:byte、short、int、long

浮点型:float、double

字符型:char

布尔型:boolean

补充:十六进制0x10转十进制

转换方法:十六进制数从低位到高位(即从右往左)计算,第0位的权值是16的0次方,第1位的权值是16的1次方,第2位的权值是16的2次方,依次递增下去,把最后的结果相加的值就是十进制的值。
因此,10(十六进制)= 1×16^1 + 0×16^0 = 16(十进制)

在新建的java工程里面的 com.demo包里建一个FloatDemo类:

package com.demo;

public class FloatDemo {
	public static void main(String[] args) {
		//定义一个单精度浮点型变量,存放1234.328
		//默认是double型,如果末尾什么都不写,就是double
		float  f=1234.328f;
		System.out.println("f="+f);
		//定义一个双精度浮点型变量,存放5623.465
		//小的数据范围可以赋值给大的数据范围
		//表示范围大的数赋值给表示范围小的是不允许的
		double d=5623.465;
		System.out.println("d="+d);
		//int赋值给double类型
		double d1=123;
		System.out.println("d1="+d1);
	}

}

double数据范围是最大的(8字节),可以存放以上任意的数据类型。

输出结果:

f=1234.328

d=5623.465

d1=123.0

3.基本数据类型变量的存储

栈、堆、常量池都是内存里面的

int n =100; 将100放到栈里面,直接用n来参与运算,n就是代表100。

4.字符型字面值

字面值是常量的一种

字符型的字面值用单引号内的单个字符表示

如:'a'、'b'、'$' 等

单引号中必须只有一个字符!

定义字符型变量

package com.demo;

public class CharDemo {

	public static void main(String[] args) {
		//定义一个变量存放字符a
		char a='a';
		System.out.println("a="+a);
		char ch=65;
		System.out.println("ch="+ch);
		//字符类型的数据范围是0-65535,如果超过,需要进行强制类型转换
		char ch1=65535;
		System.out.println("ch1="+ch1);
		//强制类型转换的结果,可能会造成数据的丢失
		char ch2=(char)65536;
		System.out.println("ch2="+ch2);
		//定义变量存放Unicode编码表示的字符
		char u='\u005d';
		System.out.println("u="+u);

	}

}

结果

a=a

ch=A

ch1=?

ch2=

u=]

为什么65赋值给ch是A呢?

原因:Ascll码

65-90表示:A-Z          97-122表示:a-z

Unicode编码:char u='\u005d';

Unicode表示法,在值前面加前缀\u

005d 是十六进制数:5*16+13=93    93对应的ascll码是:]

5.布尔型和字符串型的字面值

布尔值只能定义true和false

boolean b=true;

字符串不属于基本数据类型,属于类

字符串的字面值:双引号" "引起来的0个或者多个字符。

package com.demo;

public class StringDemo {

	public static void main(String[] args) {
		//定义一个空的字符串
		String s1 ="";
		System.out.println("s1="+s1);
		//定义一个字符串,内容是Hello
		String s2 ="Hello";
		System.out.println("s2="+s2);
		//定义一个字符串内容包含Unicode编码
		String s3 ="A\u005d\u005fB";
		System.out.println("s3="+s3);
		//定义一个字符串内容包含空格的字符串
		//空格也占用一个长度
		String s4 ="Hello CSDN";
		System.out.println("s4="+s4);

	}

}

输出结果:

s1=

s2=Hello

s3=A]_B

s4=Hello CSDN

6、综合变量的案例

回车和换行不是一回事;

回车:光标回到这一行的最开始

换行:是指光标换到下一行

通常来说:回车是回车+换行两个效果

\b:相当于delete键

\t:相当于Tab键

package com.demo;

public class VarDemo {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
        int x,y;
        x=3;
        y=5;
        //没有ln是不换行
        System.out.print("x="+x);
        System.out.print("y+"+y);
        //\n是换行 \t是横向跳过
        System.out.print("\n"+x+"\t"+y);
        //\n是换行 \' 是单引号字符
        System.out.println("\n\'"+x+" "+y+"\'");
        // String 中国="中国";
        // System.out.print(中国); //不建议用中文做变量名
        //用科学计数法表示浮点型数据
        double d =1.23E5;
        float f=1.23e5f;
        double d1=.2;
        System.out.println("d="+d);
        System.out.println("f="+f);
        System.out.println("d1="+d1);
        
	}

}

x=3y+5

3 5

'3 5'

d=123000.0

f=123000.0

d1=0.2

7、基本数据类型转换

类型转换:自动类型转换(隐式转换)和强制类型转换

自动类型转换:数据表示范围小的数据类型可以赋值给范围大的数据类型

 

强制类型转换:如果A类型的数据表示范围比B类型的大,则将A类型赋值给B类型,需要强制类型转换

如:

double d=123.4;
float f=(float)d;

强制类型转换的格式 需要转换的数据面前加个小括号(),括号里是需要转换的数据类型;

强制类型转换可能会造成数据丢失。

package com.demo;

public class TypeExchange {

	public static void main(String[] args) {
		// char 类型和int类型之间的转换
		char c=(char)65536;//强制类型转换,char的数据表示范围0-65535
		int n;
		n=c;//隐式类型转换
		c=(char)n;
        
		//整形和浮点型的类型转换问题
		int x=100;
		long y=x;//小的赋值给大的
		x=(int)y;//大的强制转换赋值给小的
		float f=100000000000000L;
		System.out.println("f="+f);
		float f1=10340727677836L;
		//long转换为float 会造成数据丢失,如上图虚线所示
		System.out.println("f1="+f1);
				
	}

}

输出:

f=1.0E14

f1=1.03407273E13

f1后面又几位没有显示出来,数据丢失了。

8、常量

什么是常量?

常量:不能变化的量

变量:可以变化的量

定义:变量定义前面加上final

常量命名的规则:fianl 数据类型 常量名=常量;

final double PI=3.14;
//PI的值不能再用 
//PI=3.15 更改
//可以在上式子直接改PI的值,下面所用用到PI的值也全部随着变化

总结:

·标识符的命名规则

·关键字

·数据类型

·变量的定义和初始化

·基本数据类型和字面值

·Ascll码和Unicode编码

·类型转换

猜你喜欢

转载自blog.csdn.net/qq_17846019/article/details/82352771
今日推荐