注释、标识符、关键字
注释
注释并不会被执行,是写给我们写代码的人看的。书写注释是一个非常好的习惯
-
单行注释
//单行注释
-
多行注释
/* 多行注释 多行注释 多行注释 */
-
文档注释
/** * @author yt * * */
标识符
标识符是赋给类、方法或変量等取的名字。一个标识符可以是字母、数字、下划线、美元符号的任意顺序组合。但不能以一个数字开始;并且也不能影java中的关键字。
标识符使用规范
- 当取名为多个单词的组合名字时,要采用驼峰命名法,比如: userName
- 类名首字母大写
- 変量名和方法名首字母小写
- 常量所以字母都大写
- 包名小写
- 工程名首字母大写
- java使用 Unicode标准字符集, Unicode字符集覆盖了大部分国家的“字母表”的字母;也就是说java类名変量名等可以是中文,因为中文也是 Unicode字符集中的字符;但不建议开发中用中文标识符。
Java字符集
java使用 Unicode标准字符集,最多可以识别655356个字符, Unicode字符集的前128个字符是 ASCII码表,ASCI部分字符对照表如下图所示:
我们知道计算机是只识别二进制0101,而我们平时书写代码时是写的abcd这种字符,为了让我们写的abcd这种字符转成对应的二进制,就需要一套转换的标准,也即是 Unicode字符集。
如:a->01100001,这个二进制我们可以用10进制来表示。即a->97。
关键字
在java中,有些单词具有专门的意义和用途,已经被官方所使用,不能当作一般的标识符使用,这些标识符称为保留关键字( reserved word)。
保留词(无含义但不能使用): goto, const
数据类型
Java是一种强类型的语言,所以在java中每个变量都需要有自己的数据类型(比如整数、小数等等),java的编译器会对你所赋值的数据进行相应的类型相容性检查。
举个例子:inti=5.5;此时就会报编译错误,因为int类型只能存整数,但是5.5是个小数,不能存入int类型的变量中。
整数类型
Java的整型字面常量表示有四种
- 十进制整数,如:1,3,12,-100
- 八进制整数,要以0开头,如:012->1×81+2×80,输出打印结果为10
- 十六进制,以0x或0X开头,如:0x12->1×161+2×160,输出打印结果为18
- 二进制,以0b或则0B开头,如:0b110->23+22+0+0输出打印结果为12
不同数据类型在使用时一定不能超过其范围,否则报错
例子:
byte b=128;直接编译报错,超过了byte最大范围127
short s1=30000;这里的30000实际上是int型,只是没有超出 short的存储范围
short s2=10
对于long类型字面常量建议使用L或者l结尾
例子:
long=2555555555你会发现这里编译报错,因为2555555555是int型,但是明显此数字的值已经超出了int的范围,所以报错。
long=2555555L;这样子2555555就真的是一个long类型了。
浮点数型
Java浮点型的常量描述有两种表现形式
-
十进制数形式,如:2.223,3.1415926,0.32
-
采用科学计数法(e大小写都可以)
如:2.223e3 -> 2.223×10^3打印结果为2223.0
123e-2 -> 123x10^-2打印结果为1.23
浮点数类型的默认字面常量是 double类型,所以我们在定乂 float类型时一般建议在其未尾加上F或者f,对于 doublet你也可加上D或者d来结尾
float f=12.7f:
字符类型
-
字节数: 2字节;
-
字面常量值: 单引号+单个字符,如’a’
-
取值范围: 我们在前面说到了java采用的是 Unicode字符集,所以也即是说char类型表示的就是 Unicode字符集中的所有字符。也即0~65535之间的所有编码
-
变量定义 char ch1=‘A’ char=98;
-
转义字符
在Java中,允许使用反斜杠”把其后的字符转成别的含义
例如:\n>换行,\t制表符,等同tab功能,\”字符意义上的双引号,\’字符意义上的单引号
-
字符串 String: 表示的是一串字符,定义时需要使用双引号”,它不是基本数据类型之一。
数据类型转换
在java程序中的每个数据都有自己的数据类型,在对这些数据进行操作时,经常会涉及到不同数据类型之间的转换。
数据类型转换按类型又分为两种:
- 自动转换(隐式转换)
- 强制转换(显示转换)
数据类型转换之前,先得了解一下,数据类型的优先级(下列从左往右优先级依次增大)
byte, short, char> int> long >float >double
自动转换
自动转换:也称隐式类型转换,是指不需要书写代码,由系统自动完成的类型转换
-
数据类型的优先级
byte, short, char >int> long> float> double
例子:
int x=10; double y=1.2; double z=x+y://其中x会自动转成 double但是byte, short,char这三者不管怎么组合运算得到的都是int类型数据
-
String类型可与任何数据类型进行+的运算,只不过此时其他类型都先转成字符串,然后进行+的操作,这里操作是进行的字符串的拼接工作
String str=“28”;int x=28; String s=str+x;//s=“2828”,其中x会先被转成字符28
-
布尔型和其它基本数据类型之间不能相互转换
-
复合赋值操作也会进行自动转换;
例子1: short s=10;
s=s+1;//此处会报编译错误,因为s+1是int类型例子2: short s1=10;
//编译通过,此时s1+1是得到了个int,但是此时为复合赋值运算,java
//编译器会多做一步,将得到的int转成 short
s1+=1;
强制转换
强制转换:也称显式类型转换,是指必须书写代码オ能完成的类型转换,一般来说当我们想要将个“大范围”类型数据转成“小范围”类型时,オ会用到强转。
例子: short s=10; short x=( short)(s+1); //强制将int型转成 short型
强制转换的时候也不是可以实现任意转换的,如果使用不当,中间可能会出现一些问题
-
转换前的数据类型与转换后的数据类型兼容(在后面所学内容类的向下塑型体现的比较明显)
例子: String str=“1”;int x=(int)str; //编译报错
-
浮点数强转整型会造成精度丢失
例子: double d=12.4;int i=(int)d; //i=12
-
“大范围”转“小范围”可能会造成数据溢出
例子:int x=130; byte b=(byte)x; //b=-126
变量、常量、作用域
变量
什么是变量
- 编程的本质就是对内存中数据的访问和修改。程序所用到的数据都会保存在内存中,程序员需要一种机制来访问或修改内存中的数据,而这种机制就是变量
变量的本质
- 从上面的说法我们可以知道变量的本质就是一个“可操作的存储空间”,空间的位置不变但是存储在空间中的值可以改变,我们需要通过变量名来实现对该存储区域的访问,继而达到操作存储空间中的值的目的。
形象的理解: 变量相当于有名字的容器,该容器用于装载不同类型的数据。
变量的构成元素
变量作为程序中最基本存储单元,其主要由变量名,变量的类型,变量值,变量的作用域这几部分来组成。
变量的声明
格式为:type indentifier [=value] [, indentifier [=value] …];
数据类型 变量名 [=初始值] [, 变量名 [=初始值]。。。],[ ]中的内容可有可无
示例:
int i=5;(声明一个int类型的变量,变量名为i,初始化赋值为5)
double x:
int a,b;
int d=5,f=18;
注:当变量用于计算时,一定要先进行初始化斌值,否则编译报错,即inti=5这种。
注意事项
- 每个变量都有类型,类型可以是基本类型,也可以是引用类型。
- 变量名必须是合法的标识符。
- 变量声明是一条完整的语句,因此每一个声明都必须以分号结束
变量作用域
- 类变量
- 实例变量
- 局部变量
public class Main {
static int allClicks = 0; //类变量
String str = "hello world!";//实例变量
public static void main(String[] args) {
int i = 0;//局部变量
}
}
常量
常量( Constant):初始化( initialize)后不能再改变值!不会变动的值。
所谓常量可以理解成一种特殊的变量,它的值被设定后,在程序运行过程中不允许被改变。
例子:
final 常量名=值;
final double PI=3. 14;
常量名一般使用大写字符
变量的命名规范
- 所有变量、方法、类名:见名知意
- 类成员变量:首字母小写和驼峰原则: monthSalary
- 局部变量:首字母小写和驼峰原则
- 常量:大写字母和下划线: MAX_VALUE
- 类名:首字母大写和驼峰原则:Man, GoodMan
- 方法名:首字母小写和驼峰原则:run(), runRun()
运算符
Java语言支持如下运算符
- 算术运算符:+,-,*,/,%,(二元)++,–(一元)
- 赋值运算符:=
- 关系运算符:>,<,>=,<=,==,!= instanceof
- 逻辑运算符:&&,||, !
- 位运算符:&,|,^,~,>>,<<,>>>(了解!!!)
- 条件运算符:?:
- 扩展赋值运算符:+=,-=,*=,/=
++,–属于一元运算符: 计算时只需要一个操作数,操作数的值自增或自减1,其该类运算符在操作数上可前置使用,也可后置使用,结果差异很大,如下所示
**运算符前置:**int i=10;int j=++i; // j=11, i=11;前++: ++i这整个表达式+1,本身也+1
**运算符后置:**int x=10;int y=x++;//y=10, x=11;后++: x++整个表达式不变,x本身+1
--操作的前置和后置也是同理
位运算
/* A = 0011 1100 B = 0000 1101 -------------------------- A&B = 0000 1100 A|B = 0011 1101 A^B = 0011 0001 ~B = 1111 0010 << *2 >> /2 */
字符串连接符 + 注意事项
int a=10;
int b=20;
System.out.println(""+a+b);//输出1020
System.out.println(a+b+"");//输出30
条件运算符
//x ? y : z
//if x==true 结果为y,否则结果为z
运算符优先级问题
优先级指java语言计算运算符的顺序。
下图列出了java中常用(未全部列出)的一些运算符的优先级关系,其中1表示优先级最高,11为最低。
总结优先级:算术运算符 > 比较运算符 > 逻辑运算符 > 赋值运算符
包机制
-
为了更好地组织类,Java提供了包机制,用于区别类名的命名空间。
-
包语句的语法格式为
package pkg1[. pkg2[. pkg3...]];
-
一般利用公司域名倒置作为包名
-
为了能够使用某一个包的成员,我们需要在Java程序中明确导入该包。使用” import”语旬可完成此功能
import package pkg1[. pkg2...].(classname|*);
JavaDoc
javadoc命令是用来生成自己API文档的
参数信息
- @ author作者名
- @ version版本号
- @ since指明需要最早使用的jdk版本
- @ param参数名
- @ return返回值情况
- @ throws异常抛出情况
/** * @author yt * @version 1.0 * @since 11 */
public class Main {
String name;
/** * * @param name * @return * @throws Exception */
public String test(String name) throws Exception{
return name;
}
}
cmd javadoc命令
javadoc -encoding UTF-8 -charset UTF-8 文件名
turn返回值情况
- @ throws异常抛出情况
/** * @author yt * @version 1.0 * @since 11 */
public class Main {
String name;
/** * * @param name * @return * @throws Exception */
public String test(String name) throws Exception{
return name;
}
}
cmd javadoc命令
javadoc -encoding UTF-8 -charset UTF-8 文件名
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/114436.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...