Java基础
标识符
Java遵循就近原则
-
什么是标识符 ?
在 java 源程序当中,凡是程序员有权利自已命名的单词都是标识符。
-
标识符可以标识什么元素呢 ?
* 类名 * 接口名 * 变量名 * 方法名 * 常量名
- 标识符的命名规则
* 只能由"数字、字母、下划线_、美元符号$"组成,不能含有其它符号
* 不能数字开头
* 严格区分大小写
* 关键字不能做标识符
* 理论上无长度限制,但是最好不要太长
* 变量先声明数据类型,再进行初始化,才能被访问
- 命名规范(最好敲代码按照规范来)
* 最好见名知意
* 遵守驼峰命名方式
* 类名、接口名: 每个单词的首字母大写。
* 变量名、方法名: 首字母小写,后面每个单词首字母大写。
* 常量名: 全部大写,比如PRICE
关键字
字面值
- 字面值:
10、100 、3.14 、"abc" 、 'a‘ 、 true、 false
- 字面值就是数据,可以清楚的知道它是什么,多大。
- 字面值是java源程序的组成部分之一,包括标识符和关键字它们都是java源程序的组成部分
- 数据在现实世界当中是分门别类的,所以数据在计算机编程语言当中也是有类型的
- 数据类型
-10、100 属于整数型字面值
- 3.14 属于浮点型字面值
- true ,false 属于布尔型字面值
- " abc" 、"中国人" 属于字符串型字面值
- 'A'、'人 ’ 属于字符型字面值
- 注意:
java语言当中所有的字符串型字面值必须使用双引号括起来,双引号是半角双引号,java语言当中所有的字符型字面值必须使用单引号括起来(单个字符)。
变量
- 什么是变量?
* 变量本质上来说是内存中的一块空间,这块空间"有数据类型"、"有名字"、有字面值"。
* 变量包含三部分:数据类型、名称、字面值【数据】
* 变量是内存中存储数据的最基本的单元。
- 数据类型的作用?
* 不同的数据有不同的类型,不同的数据类型会分配不同大小的空间。
* 数据类型是指导程序在运行阶段应该分配多大的内存空间。
-
变量要求:
-
变量中存储的具体的"数据"必须和变量的"数据类型"一致,当不一致的时候编译报错。
-
变量在一行中可以声明多个,变量可以重复使用,要求变量先声明再赋值,注意:要求一行定义一个变量
-
变量的作用域(有效范围):出来main方法的{ }就不认识了
-
在同一个作用域中不能定义相同名字的变量,而不同作用域可以
-
变量的分类:局部变量和成员变量
- 在方法体当中声明的变量叫做局部变量
- 在方法体外【类体之内】声明的变量叫做成员变量
- 注意:成员变量不用赋初值,系统会自动给他赋值,而局部变量必须赋初值
且,成员变量定义之前要加 static 关键字,比如static int i;
- 注意:不管是局部变量还是成员变量,我们都要给他们赋初值,另外成员变量在定义的时候要加static(int i);
类体里面不能直接编写JAVA语句,除声明变量之外
数据类型
-
强类型语言:Java、c、c++ 要求变量的使用严格符合规定,所有变量要先定义才能使用
-
弱类型语言:Javascript
1、数据类型的作用是什么?
程序当中有很多数据,每一个数据都是有相关类型的,不同数据类型的数据占用空间大小不同。数据类型的作用是指导Java在运行程序的时候给该数据分配多大的内存空间。
2、java中的数据类型包括两种:
- 引用数据类型:数组、类、接口
- 基本数据类型(基本数据类型包括四大类八种)
第一类:整数型(byte类型的取值范围:-128-127)
byte ,short ,int ,long 1 2 4 8
第二类:浮点型
float ,double 4 8
第三类:布尔型
boolean 1
第四类:字符型(字符串属于引用数据类型)
char 2
注意:
- short和char所表示的种类总数是一样的,只不过char可以表示更大的正整数。因为char没有负数。
- 一个中文正好是两个字节,所以一个汉字可以用一个字符char表示,
数据类型转换
- 关于基本数据类型之间的互相转换:转换规则
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类型再做运算。-----整数浮点型
6、多种数据类型混合运算,先转换成容量最大的那种类型再做运算。
注意:面试题
- 1、java语言当中的“整数型字面值”被默认当做int类型来处理。
- 2、要让这个“整数型字面值”被当做long类型来处理的话,需要在“整数型字面值”后面添加1/L,建议使用大写的L
- 3、在java语言当中,所有的浮点型字面值【3.0】,默认被当做double类型来处理,要想该字面值当做float类型来处理,需要在字面值后面添加 F/f 。
- double和float在计算机内部二进制存储的时候存储的都是近似值。
- java语言当中的整数型字面值有三种表示方式 :
第一种方式: 十进制【是一种缺省默认的方式】
第二种方式: 八进制【在编写八进制整数型字面值的时候需要以0开始】
第三种方式:十六进制【在编写十六进制整数型字面值的时候需要以0x开始】
- 数据类型转换:自动类型装换、强制类型装换
1、小类型自动装换成大类型——自动类型装换
2、大类型装换成小类型——强制类型装换(会造成数据的丢失)
- 当一个整数字面值没有超出byte ,short , char的取值范围,这个字面值可以直接赋值给byte , short , char类型的变量。但是一旦超过,就需要用强制类型转换
转义字符
转义字符(\)出现在特殊字符之前,会将特殊字符转换成普通字符。
布尔类型
关于布尔型数据类型: boolean
-
在java语言当中boolean类型只有两个值:true、 false,没有其它值。不像c语言当中,0和1可以表示假和真。
-
在底层存储的时候boolean类型占用1个字节,而实际存储的时候false底层是0 ,true底层是1。
-
布尔类型在实际开发当中非常重要,经常使用在逻辑运算和条件控制语句当中。
运算符
-
算术运算符:+ - * / % ++ --
public class Demo01 { public static void main(String[] args) { // ++ -- int a = 3; int b = a++; System.out.println(a);//输出结果是4 //原因:在上一行的a++里面,a是先赋值给b,然后自加1 int c = ++a; System.out.println(a);//结果5=4+1 //原因:在上一行的++a里面,a是先自加1,然后再赋值给c System.out.println(b);//结果3 System.out.println(c);//结果5 } }
-
赋值运算符:=
-
关系运算符:> < >= <= == != instanceof
-
逻辑运算符:&& || !
-
位运算符:& | ^ ~ >> << >>>
public class Demoe6 { public static void main( String[] args) { /* A = 0011 1100 B = 0000 1101 ---------------- A&B = 0000 1100 同1则1 A|B = 0011 1101 有1则1 A^B = 0011 0001 异或 同0异1 ~B= 1111 0010 取反 面试题: 2*8 = 16 2*2*2*2效率极高! ! ! << 相当于*2 >> 相当于/2 0000 0000 0 0000 0001 1 0000 0010 2 0000 0011 3 0000 0100 4 0000 1000 8 0001 0000 16 */ System.out.println(2<<3); // 结果16 } }
-
条件运算符:? = (三元运算符)
-
扩展赋值运算符:+= -= *= /=
public class Demo01 {
public static void main(String[] args) {
int a = 10;
int b = 11;
a+=b;
System.out.println(a); //输出结果21
int d = 20;
int e = 30;
System.out.println(""+d+e); //结果2030
System.out.println(d+e+""); //结果50
}
}
运算符优先级:
详细可参考:
包机制
JavaDoc(文档注释)
javadoc命令是用来生成自己的API文档
参数信息
@author作者名
@version版本号
@since指明需要最早使用的jdk版本
@param参数名
@return返回值情况
@throws异常抛出情况
问题:如何使用IDEA生成Javadoc文档
(25条消息) 如何使用Intellij Idea生成JavaDoc文档_霜之哀伤-CSDN博客_使用idea生成javadoc文档