200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > 标识符 关键字 字面值 数据类型 进制换算 字符编码 变量 数据类型详解 运算符

标识符 关键字 字面值 数据类型 进制换算 字符编码 变量 数据类型详解 运算符

时间:2019-02-06 18:41:42

相关推荐

标识符 关键字 字面值 数据类型 进制换算 字符编码 变量 数据类型详解 运算符

1、标识符

/*关于java语言当中的标识符1、 什么是标识符?- 在java源程序当中凡是自己有权利命名的单词都为标识符。- 标识符在Editplus当中以黑色高亮显示- 标识符可以表示什么元素呢?*类名*方法名*变量名*常量名*接口名...2、标识符的命名规则?【不按照这个规则来 编译器会报错 这是语法】* 只能由 数字、字母、下划线_、美元符号$ 组成,不能含有其他符号* 不能以数字开头* 严格区分大小写* 关键字不能做标识符* 理论上无长度限制 但是最好不要过长3、标识符的命名规范?【只是一种规范,不属于语法,不遵守编译器不会报错】* 最好见名知意public class UserService{public void (String username,String Password) {}}* 遵守驼峰命名方法SystemServiceUserService* 类名、接口名: 首字母大写,后面每个单词首字母大写* 变量名、方法名:首字母小写,后面每个单词首字母大写* 常量名:全部大写*/public class IdentifireTest01//IdentifierTest01 是一个类名,名字可以修改// main 是一个方法名{public static void main(String[] args){ //args 是一个变量名}}

2、字面值

/*关于字面值:* 字面值:-10、100属于整数型字面值-3.14属于浮点型字面值-"abc"" 中国人" 输入字符串型字面值-'a''人'属于字符型字面值-true、false属于布尔型字面值* 字面值就是数据。注意:java语言中所有字符串型字面值必须用双引号括起来java语言中所有字符型字面值必须用单引号括起来*/public class ConstTest01{public static void main(String[] args){System.out.println(10);System.out.println(3.14);System.out.println("中国人");System.out.println('人');// System.out.println('中国'); 报错:编译报错,因为单引号中只能存放单个字符}}

3、变量

/* 变量变量本质上来说是内存中的一块空间,这块空间有 数据类型、变量名、字面值【数据】组成。*/public class VarTest01{ public static void main(String[] args){int i=10;System.out.println(i);//int a,b,c=300;报错:a和b尚未初始化(赋值) c赋值300//System.out.println(a);//System.out.println(b);//System.out.println(c);}}

/* */public class VarTest01{ public static void main(String[] args){int i=100;i=80;System.out.println(i);// 报错: 在同一个作用域当中,变量名不能重名(因为i=100已经占用了内存空间了)但是变量可以重新赋值。//int i =90;//System.out.println(i);}}

4、变量的作用域(成员变量 局部变量)

/* 什么是变量的作用域?* 出了大括号就不认识了*/public class VarTest01{ // 注意这里的static不能省掉static int k=90;//相当于全局变量 (成员变量)public static void main(String[] args){// 变量i的作用域是main方法// 在整个main方法中是有效的可见的int i=100;// 相当于局部变量 只能在main方法中应用 在dosome方法中不能用 System.out.println(k); //可以访问k// 以下会编写一个for循环语句//for (int a=0;a<10 ;a++ )// a变量的作用域是整个for循环 for循环结束后a变量内存就被释放了//{//}//System.out.println(a);// 报错!!! 无法访问a变量int j; // 相当于全局变量for (j=0;j<10 ;j++ ){}System.out.println(j);}public static void dosome(String[] args){//报错!!!// 这里已经无法访问main方法中的i变量//System.out.println(i);System.out.println(k); //可以访问k}}

5、数据类型

/*数据类型的作用?程序当中有很多数据,每一个数据都有相关的类型,不同数据类型占用的空间大小不同数据类型的作用是指导JVM在运行过程中给该数据分配相应的内存空间基本数据类型:(包括四大类八小种)整数型: int4字节long8short2byte1取值范围【-128~127】浮点型: float4double8布尔型: boolean 1取值范围【true,false】字符型: (表示文字)char2取值范围【0~65535】字符串"abc"不属于基本数据类型,属于引用数据类型,字符属于基本数据类型*字符串用双引号""*字符用单引号''什么是字节编码?为了让计算机能够表示现实世界当中的文字,我们需要人为的干涉,需要人负责提前制定好"文字"和"二进制"之间的对照关系,这种对照关系被称为: 字符编码。最早的字符编码:ASCII码'a'--->97'A'--->65'0'--->48java语言采用的是哪一种编码方式呢?-java语言源代码采用的是unicode编码方式,所以"标识符"可以是中文。public class 学生{}现在在实际开发中,一般使用UTF-8编码方式比较多。【统一编码方式】*/

数据类型的详细介绍:

char类型

public class DataTypeTest{public static void main(String[] args){char a='a';System.out.println(a);// 定义一个中文字符一个中文占用2个字节 char刚好2个字节// 当为2个中文时就会报错char b='国';System.out.println(b);//ab为字符串不能用单引号 报错!!!//char c='ab';//System.out.println(c);//为双引号时也会报错类型类型不兼容//char d="a";//System.out.println(d);}}

转义字符

/*关于java语言中的char的类型:转义字符 \\n换行符\t制表符\'普通的单引号\\普通的反斜杠\"普通的双引号转义字符出现在特殊字符之前,会将特殊字符转换成普通字符如:System.out.println("\"hello world!\""); \会将左右两边的引号转换成普通"*/public class DataTypeTest{public static void main(String[] args){// * 普通的字符nchar a='n';System.out.println(a);// * \n 换行符System.out.println("hello");System.out.println("world!");// 注意: print和println的区别: print指输出后不换行 println指输出后换行System.out.print("hello");System.out.println("world!");// 编译错误 报错//System.out.println(""hello world!"");System.out.println("\"hello world!\"");// * \t 制表符(相当于tab)// 强调:制表符和空格不同,他们的ASCII码不同char i='\t';System.out.print("A");System.out.print(i);System.out.println("B");// * 要求在控制台输出反斜杠字符//char c='\';报错 反斜杠将后面的'进行转义了 而要是用c变量的话需要完整的''因此报错//System.out.println(c);char c='\\';// 第一个反斜杠将后面的斜杠进行转义成\System.out.println(c);}}

关于JDK自带的native2ascii.exe命令,可以将文字转换成unicode编码形式如下:

怎么解码呢?

整数型

关于java语言当中的整数型:

数据类型 占用空间大小 默认值 取值范围

----------------------------------------------------------

bytes 1 0 【-128~127】

short 2 0 【-32768~32767】

int 4 0 【-2147483648~2147483647】

long 8 0L

1、 java语言当中的“整数型字面值”被默认当做int类型来处理,要想让这个“整数型字面值”被当做long类型

来处理的话,需要在“整数型字面值”后面加上l或L,建议使用L。

(如 long x=123; 123先被JVM当做整数型字面值来进行判断取值范围等,然后赋值给long型)

2、java语言当中的整数型字面值有三种表示方式:

第一种方式:十进制【是一种缺省默认的方式】

第二种方式:八进制【在编写八进制整数型字面值的时候需要以0开始】

第三种方式:十六进制【在编写十六进制整数型字面值的时候需要以0x开始】

public class DataTypeTest

{

public static void main(String[] args){

int a=10;

int b=010;

int c=0x10;

System.out.println(a); //10

System.out.println(b); //8

System.out.println(c); //16

//由上述1文字叙述可知 123这个整数的字面值为int类型

//i变量声明的时候也是int类型

//int类型的123赋值给int类型的变量i,因此不存在类型转换

int i=123;

System.out.println(i);

// 错误: 过大的整数: 2147483648

// 因为2147483648首先被JVM当成int类型 但是int类型的取值范围为2147483647因此进行了报错

//long z=2147483648;

//System.out.println(z);

// 将字面值变成long型(long型的取值范围大)

long z=2147483648L;

System.out.println(z);

}

}

强制转换类型:

强制类型转换原理: 加上强制类型转换符“(转换类型)”后编译能通过 但运行阶段可能损失精度。

原始数据(如:long类型):

00000000 00000000 00000000 00000000 00000000 00000000 00000000 01010100

强转之后的数据(如强转成int类型):

00000000 00000000 00000000 01010100

long k=27564123L;

int e=(int)k;

System.out.println(e);

byte特殊性

public class DataTypeTest

{

public static void main(String[] args){

分析以下数据是否能够编译成功?

依据目前所学以下数据编译是不成功的

理由:50是int类型的字面值,a是byte类型的变量,显然是大容量int转换成小容量byte

大容量转换成小容量需要添加强制类型转换符 以下程序没有添加转换符 所以报错

注意: 但是程序没有报错 以下代码编译通过了 这说明:在java语言中,当一个整数型字面值

没有超过byte类型的取值范围的话 该字面值可以直接赋值给byte类型的变量

byte a=50;

byte b=127;

byte c=128;// 超出了byte类型的取值范围 报错

System.out.println(a);

System.out.println(b);

System.out.println(c);

}

}

浮点型类型

/*

关于浮点型类型:

float 单精度【4个字节】

double 双精度【8个字节】

在java语言中,所有的浮点型字面值如【3.0】默认当成double类型来进行处理

要想该字面值当做float类型来处理 需要在字面值后面加上F或f

注意:double和float在计算机内部二进制存储的时候存储的都是近似值。

如10÷3=3.333333333333...

*/

public class DataTypeTest

{

public static void main(String[] args){

// 字面值3.0默认类型为double类型 无转换

double i=3.0;

System.out.println(i);

//字面值5.0默认为double类型 double类型比float类型大 因此大转小 报错

//(没有添加强制转换符 添加的话也容易丢失精度)

//float a =5.0;

//System.out.println(a);

float b =5.1F;

System.out.println(b);

}

}

布尔数据类型

/*

关于布尔型数据类型:

boolean

*/

public class DataTypeTest

{

public static void main(String[] args){

// java当中 0和1不兼容 报错

//boolean i =1;

boolean loginuser = true;

if (loginuser)

{

System.out.println("恭喜你 登录成功!");

}

else{

System.out.println("用户登录失败!");

}

}

}

基本数据类型的相互转换

/*

关于基本数据类型之间的转换:

转换规则:

1、八种基本数据类型当中除布尔型类型之外剩余的7种数据类型之间可以进行相互转换

2、小容量向大容量转换称为自动类型转换,容量从小到大排序:

byte<short<int<long<float<double<char

注:

任何浮点型不管占用多少个字节 都比整数型容量大

char和short可表示的种类数量相同,但是char可以取更大的正整数

3、大容量转换为小容量称为强制类型转换,需要加强制类型转换符,程序才能

编译通过,但是在运行阶段可能会损失精度,所以谨慎使用

4、当整数字面值没有超过byte,short,char的取值范围,可以直接赋值给byte,short,char类型的变量

5、byte,short,char混合运算的时候,各自先转换成int类型再做运算

byte a=5;

short b=10;

int k =15;(尽量不要让运算法则混杂进来 尽量不写成 int x = a+b)

6、多种数据类型混合运算,先转换成容量最大的那种类型再做运算

*/

算术运算符

/*

关于java编程运算符中: 算术运算符

+ 求和

- 相减

* 乘积

/ 商

% 求余数【取模】

++ 自加1

-- 自减1

注意:一个表达式当中有多个运算符,运算符有优先级,不确定的加小括号,优先级得到提升。

没有必要去专门记忆运算符的优先级

*/

public class DataTypeTest

{

public static void main(String[] args){

int i =3;

int a =6;

System.out.println(i+a);

// 以下为++为例 (--相同)

// 关于++运算符【自加1】

//int b =9;

//++运算符可以出现在变量名之后【单目运算符】

//b++;

//System.out.println(b); //10

// ++运算符可以出现在变量名之前

//++b;

//System.out.println(b); //10

int c =100;

int d =++c;

System.out.println(c); //101 ++c了所以100+1

System.out.println(d); //101 同理++c为101

int e =300;

int f =e++;

System.out.println(e); //301 e++了所以300+1

System.out.println(f); //300 int f =e++ 先赋值e 后作加减 所以先将e=300 赋值给f

}

}

关系运算符

/*

关于java编程运算符中: 关系运算符

!= 不等于

关系运算符的运行结果一定是布尔类型:true/false

*/

public class DataTypeTest

{

public static void main(String[] args){

int a =10;

int b =10;

System.out.println(a!=b); //false

}

}

逻辑运算符

/*

关于java编程运算符中: 逻辑运算符

& 逻辑与【并且】(两边的算子都为true 结果才为true)

| 逻辑或【或者】(两边的算子只要有一个为true 结果就为true)

! 逻辑非(取反 !false就是true !true就是false )

^ 逻辑异或 (两边的算子只要不一样 结果就为true)

&& 短路与

|| 短路或

短路与和逻辑与最终的运算结果是相同的,只不过短路与存在短路现象

短路或和逻辑或最终的运算结果是相同的,只不过短路或存在短路现象

*/

public class DataTypeTest

{

public static void main(String[] args){

System.out.println(6>5&6>3); //true 运算级:先算6>5 6>3 再比较

System.out.println(6>5&6>8); //false

System.out.println(6>5|6>9); //true

System.out.println(6>8&6>10); //false

System.out.println(!false); //true

System.out.println(false^false); //false

System.out.println(false^true); //true

System.out.println("======================");

// 逻辑与和短路与

int x=10;

int y =8;

// 逻辑与

System.out.println(x<y & ++x<y);

System.out.println(x); //11

// 短路与

//x<y结果是false,整个表达式结果已经确定是false

// 所以后面的++x<y表达式不再进行,这种现象称为短路现象

System.out.println(x<y && ++x<y);

System.out.println(x); //10

}

}

从某个角度讲短路与更为智能。由于后面的表达式可能不执行,所以执行效率较高。

字符串连接运算符

/* 字符串连接规则:

数字 + 数字 ---> 数字【求和】

数字 + "字符串" ---> "字符串"【字符串连接】

*/

public class A

{

public static void main(String[] args){

System.out.println(10+30); //40

System.out.println("10+30"); // 10+30

System.out.println(10+"30"); //1030

System.out.println(10+20+"30"); //3030 自左向右的顺序依次计算

System.out.println(10+(20+"30"));//20+"30"变成字符串"2030" 然后字符串"2030"再与数字10相加 结果102030

int a=10;

int b=30;

// 怎么输出10+30=40呢?

// 第一种方法

System.out.println("10+30=40"); //10+30=40

// 第二种方法【要求动态方法 就是不固定变量a和b】

System.out.println("10+30="+a+b);

//"10+30=1030" 先拼接"10+30="+a (字符串+数字 直接拼接)即"10+30=10" 再"10+30=10"+b 即"10+30=1030"

System.out.println("10+30="+(a+b)); //10+30=40

System.out.println("a+30="+(a+b)); // a+30=40

// 问: 怎么把a和b写活呢?

System.out.println(a+"+"+b+"="+(a+b));//拼接过程:a+"+",a+"+"+b,a+"+"+b+"=",a+"+"+b+"="+(a+b)

System.out.println("=============================");

/*

引用类型String

String是SUN在javaSE当中提供的字符串类型

String.class字节码文件

String是引用数据类型,s是变量名,"abc"是String类型的字面值

String s="abc";

注意:String ss=10; 编译错误 类型不兼容

*/

String username="junker";

//System.out.println("登录成功 欢迎username回来!");//登录成功 欢迎username回来!

System.out.println("登录成功 欢迎"+username+"回来!");//登录成功 欢迎junker回来!

}

}

三元运算符

/*

三元运算符/三目运算符/条件运算符

1、语法规则:

布尔表达式 ? 表达式1:表达式2

2、三元运算符的执行原理:

当布尔表达式的结果为true的时候,选择表达式1作为整个表达式的执行结果

当布尔表达式的结果为false的时候,选择表达式2作为整个表达式的执行结果

*/

public class A

{

public static void main(String[] args){

// 布尔类型的变量

boolean sex =true;

// 报错 不是一个语句

//sex ? '男':'女';

//正确过程如下:

char c = sex ? '男':'女';

System.out.println(c); // 男

// 报错 不兼容类型: "男" 为String类型 '女' 为char类型

//char d =sex ? "男":'女';

//System.out.println(d);

sex =false; // 给boolean变量重新赋值

// 也可以都写成String类型

String i = sex ? "男":"女";

System.out.println(i); // 女

}

}

运用三元运算符:

接收用户输入的3个整数 并将它们的最大值作为结果输出

public class A{public static void main(String[] args){java.util.Scanner s = new java.util.Scanner(System.in);System.out.print("请输入第一个整数:");int a =s.nextInt();System.out.print("请输入第二个整数:");int b =s.nextInt();System.out.print("请输入第三个整数:");int c =s.nextInt();int max =a>b?a:b;max =max>c?max:c;System.out.println("最大值为:"+max);}}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。