Java基础变量和数据类型及相关操作
Java基本语法:
1):Java语⾔严格区分⼤⼩写,好⽐main和Main是完全不同的概念。
2):⼀个Java源⽂件⾥可以定义多个Java类,但其中最多只能有⼀个类被定义成public类。若源⽂件中包括了public类,源⽂件必须和该public类同名。
3):⼀个源⽂件中包含N个Java类时,成功编译后会⽣成N份字节码⽂件,即每个类都会⽣成⼀份单独的class⽂件,且字节码⽂件名和其对应的类名相同。
4):若⼀个类必须运⾏,则必须拥有main⽅法,因为main⽅法是程序的⼊⼝.
编程建议:
⼀个Java源⽂件只定义⼀个类,不同的类使⽤不同的源⽂件定义;
将每个源⽂件中单独定义的类都定义成public的;
保持Java源⽂件的主⽂件名与源⽂件中的类名⼀致;
注释类型
单⾏注释:// ; //注释信息,从//开始到本⾏结束的所有字符会被编译器忽略;
多⾏注释:/**/;/* 注释信息 */之间的所有字符会被编译器忽略
⽂档注释:/***/;/** 注释信息 */和多⾏注释⼀样,除此之外还可以专门⽣成⽂档信息API。
关键字:
在编程语⾔中有⼀些事先定义的,有着特殊含义和⽤途的单词。
保留字:
和关键字⼀样都是编程语⾔事先定义好的,只是说现在暂时没有特殊的⽤途,但说不定以后某天会突然被赋予意义和被使⽤到,因此被保留下来的单词,goto和const就是Java的保留字。
注意
关键字和保留字都是由⼩写组成
Java语⾔分隔符:
分号(;):语句的分割,表⽰⼀句话结束,好⽐咱们使⽤的句号。
花括号({}):表⽰⼀个代码块,是⼀个整体,花括号要成对使⽤。
⽅括号([]):定义数组和访问数组元素时使⽤。
圆括号(()):使⽤很⼴泛,具体⽤到细讲。
圆点(.):类和对象访问它的成员时使⽤。
java定义一维数组并赋值空格():把⼀整条语句分割成⼏段,空格的次数不限制,好⽐⼀句英⽂⾥单词都要分开写⼀样。
注意:必须都是半⾓下的英⽂符号。;ab;ab
标识符:
在写代码的时候为了增强代码的阅读性会⾃定义很多名字,⽐如:类名,⽅法名,变量名等。 在编程的⾥我们把这种为了增强程序阅读性⽽⾃定义的名称,称为标识符。
标识符命名规则:
① 由字母、数字、下划线、$组成,但不能以数字开头(注:此处的字母可以是中⽂、⽇⽂等)。
② ⼤⼩写敏感。
③ 不得使⽤java中的关键字和保留字。
④ 不⽤Java中内置的类名作为⾃⼰的类名。
其实,⼤家也没必要记这么多,使⽤⼀个⾮关键字和保留字的有意义的英⽂单词就很OK了。 注意问题:类名⾸字符规范是⼤写的.
常量:
程序中固定不变化的值。
常量分类:
字⾯值常量: ⽐如:整数常量1,2,3,⼩数常量3.14,布尔常量false,true等。. 字⾯量,就表⽰直接给出的⼀个值(可以是整数,⼩
数,true,false等等),
直接量. 定义的final变量:
变量
变量的定义:
表⽰存储空间,可⽤来存放某⼀类型的常量,没有固定值,并可以重复使⽤,也可以⽤来存储某种类型的未知数据。 好⽐饭店雅间的名字.变量的特点:
① 占据着内存中的某⼀块存储区域;
② 该区域有⾃⼰的名称(变量名)和类型(数据类型);
③ 可以被重复使⽤;
④ 该区域的数据可以在同⼀类型范围内不断变化;
变量的定义:
a.先定义变量,再赋值:数据类型 变量名; 变量名 = 值
b.在声明时同时赋值: 数据类型 变量名 = 初始化值;
注:格式是固定的,记住格式,以不变应万变。
不推荐:同时定义多个变量.
变量的分类:
随着变量定义在类中的位置不同,故把变量分成两⼤类:
成员变量:直接定义在类⾥的变量,⼜称为全局变量或字段。
局部变量:变量除了成员变量之外,其他就是局部变量。根据定义的位置不同有3种表现形式:⽅法形参,⽅法内变量,代码块变量。
变量作⽤域:
指变量的存在范围,只有在这个范围内,程序代码才能访问它。当⼀个变量被定义时,它的作⽤域就确定了: 作⽤域是定义开始到定义所在的花括号结束;
变量使⽤规则:
1.变量必须先声明,并且初始化后才能使⽤;
2.声明变量必须有数据类型
3.同⼀作⽤域内变量名不能重复定义
表达式(expression):
是由数字、运算符、数字分组符号(括号)、常量、变量等以能求得结果的有意义排列的组合。 ⽤运算符号连接的变量/常量可称为表达式。那么也就是说表达式是由常量、变量、运算符、括号组成能求得值的有意义结果的语句。
表达式中操作数进⾏运算得到的最终结果就是表达式的结果。。
表达式的运算顺序(⼤多和数学⼀样,参照后⾯的运算符操作优先级):
数据类型和分类
在Java中数据类型整体上分成两⼤类:
1):基本数据类型/原⽣数据类型,共8个:
1>:数值型: 整数类型:byte,short,int,long, 不同的整数类型在内存占⽤的内存空间⼤⼩是不⼀样的. ⼩数类型:float,double.
2>:字符型:char,什么是字符,字母/符号.
3>:布尔型:boolean,表⽰对与错.true,false.
2):引⽤数据类型/对象数据类型: 类/接⼝/数组
boolean类型:
通常⽤于逻辑运算和程序流程控制(条件选择/循环)。 该类型的值只能是true 或 false,表⽰真或假。 不可以使⽤0或⾮0的整数来代替false和true,区分于C语⾔。 (其实在JVM中对boolean的处理也是⽤0表⽰false,⾮0表⽰true的。)
false和true是boolean的常量。
整数类型(byte-short-int-long):
byte、short、int、long类型: 整型常量的四种表⽰形式:
① ⼆进制整数:0B或0b开头(Java7的新特性),如:int a = 0B110;
② ⼋进制整数:要求以0开头,如 int a = 012;
③ ⼗进制整数:如:int a = 17;
④ ⼗六进制整数:要求0X或0x开头,如int a = 0x12;
Java语⾔的整型常量默认是int型,声明long型变量后加上‘l’或‘L,因⼩写的l容易和数字1相混淆,建议使⽤⼤写L。 默认情况下,⼀个整型的字⾯量默认是int类型.
byte,short,int,long唯⼀的不同就是存储空间的容量⼤⼩不⼀样.根据具体需要存储的数据去选择合适的数据类型, ⼀般的,使⽤int即可.
⼩数类型(float-double):
float、double类型: 表⽰⼩数类型⼜称为浮点类型,其中float表⽰单精度类型,double表⽰双精度类型,但是⼆者都不能表⽰精确的⼩数。
Java的浮点类型常量有两种表现形式:
⼗进制形式: 例如:3.14 ,168.0, .618
科学计数法形式: 例如:3.14e2, 3.14E2, 1000E-2 科学计数法表达式返回的结果是double类型。 默认情况下,⼀个浮点类型的字⾯量默认是double类型.若要声明⼀个常量为float型,则需在常量后加上f 或 F,double常量后⾯的D或d可省略。
注意:Java⾥只有浮点型的变量才可以接受科学计算式结果: 因为float和double都不能精确的表⽰⼩数,那么在精度要求⾼的系统⽐如银⾏系统⾥,那怎么表⽰精确的⼩数呢?⽤BigDecimal类型,它表⽰任意精度的数据。
字符类型(char):
字符,字母和符号.
char类型:表⽰16位的⽆符号整数或者Unicode字符,Java对字符采⽤Unicode字符编码。 Unicode收集了世界上所有语⾔⽂字中的符号,是⼀种跨平台的编码⽅式,Java的字符占两个字节,可以表⽰⼀个汉字。
什么是编码?
计算机只能表⽰0和1两个数,于是⼈们做规定使⽤⼀个数字去表⽰⼀个特定的字符,⽐如a使⽤97表⽰。 char前256个字符和ASCII(美国信息交互标准编码)码中的字符重复。
char常量有3种表⽰形式:
① 直接使⽤单个字符来指定字符常量,格式如'◆'、'A','7';
② 直接作为⼗进制整数数值使⽤,但是数据范围在[0,65535],格式如97,但是打印出来的值依然是ASCII码表对于的符号,如97打印出来是字符a。
③ 和2⼀样,只不过表⽰的是16进制的数值,格式如'\uX',X表⽰16进制整数;如:97的16进制是61。那么表⽰为‘\u0061’打印出来也是a。 所以有⼈说char本质上也是整型,也是有道理的。 char前256个字符和ASCII(美国信息交互标准编码)码中的字符重复,可查表。
最常⽤的引⽤类型-String
除了8种基本数据类型,其他所有类型都是引⽤数据类型,包括类、接⼝、数组。引⽤数据类型默认初始值都是null。
String是⼀个类,表⽰字符串,所谓字符串,就是⼀串字符,也就是N个字符连接在⼀起(N可以表⽰0或多个),好⽐⽺⾁串。字符串都得使⽤ "" 括起来的,连接字符串使⽤ “+”符号。
字符串拼接:字符串和任意数据类型相连接,结果都是字符串类型.
System.out.println(8 + 7 + "Hello");//结果是 15hello
System.out.println("Hello" + 7 + 8);//结果是 hello78
System.out.println(7 + "Hello" + 8);//结果是 7hello8
String str = 17 + "ABC";//组成⼀个新的字符串 17ABC
System.out.println(str);
String str2 = (String)17 + "ABC";//编译错误: 不可转换的类型
数据过⼤和溢出
当要表⽰的数据超出数据类型的临界范围时,称为溢出。
溢出情况发⽣时程序并没有做数据范围检查处理,此时会出现数据紊乱情况。 int最⼤值 int intMax = 2147483647;
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论