第一章 语言概述
1.基本介绍
编译:javac 运行:java
2.注释comment
1.//单行注释
2./* */多行注释 不可以嵌套使用
3.文档注释(java特有):/** */
注释内容可以被jdk提供的工具 javadoc 所解析,生成一套以网页形式体现的该程序的说明文档
3.注意
-
在一个Java源文件中可以声明多个class,但是,只能最多一个类声明为public的,而且要求声明public的类的类名必须与源文件相同
-
程序的入口是main()方法,格式是固定的
-
System.out.println() 先输出数据,再换行
-
System.out.print() 只输出数据
-
}或者;结尾
-
编译以后,会生成一个或者多个字节码文件,文件的文件名与源文件中类名一致
4.开发工具 IDE : Eclipse myeclipse Intelij IDEA
第二章 基本语法(上)变量与运算符
1.关键字与保留字
- 专门用途
- 全是小写
- 保留字:现在还没用,以后可能会作为关键字使用:goto const 自己命名要避开
2.标识符
- 对各种变量方法类起的名都叫标识符(自己起名的)
- 命名规则
- 26个英文字母大小写,0-9,_或者$组成
- 数字不能开头
- 不可以使用关键字和保留字,但能包含关键字和保留字
- 严格区分大小写,长度无限制
- 不能包含空格
- 命名规范
- 包名:多单词组成时字母都小写
- 类名和接口名:多单词组成时,所有单词首字母大写
- 变量名、方法名:多单词组成时,第一个单词首字母小写,第二个单词开始每个单词首字母大写
- 常量名:所有字母大写,多单词用下划线连接
3.变量
- 必须先声明,后使用
- 数据类型 变量名=变量值
- 作用域在一对{}内
- 作用域外无效,不要重名
1、基本数据类型
- 数值型
- 整数类型
- byte:1字节=8bit位 表数范围 -128~127
- short:2字节=16bit位 表数范围 − 2 15 -2^{15} −215~ 2 15 − 1 2^{15}-1 215−1
- int:4字节=32bit位 表数范围 − 2 31 -2^{31} −231~ 2 31 − 1 2^{31}-1 231−1
- long:8字节=64bit位 表数范围 − 2 63 -2^{63} −263~ 2 63 − 1 2^{63}-1 263−1
- 注意:默认常量为int,声明long型常量后加’l’或者’L’;变量通常声明为int,除非不足以表达很大的数才用long
- 浮点类型
- float:4字节,单精度,尾数7位有效数字,精度低难以满足需求
- double:8字节,双精度,精度为float两倍,通常用这个
- 注意:常量默认double型,声明float要在结尾加’f’或者’F’
- 整数类型
- 字符型
- char:1字符=2字节
- 定义时使用一对单引号’',内部只能写一个字符
- 表示方式:
- 声明一个字符
- 定义一个转义字符(\n,\t)
- 直接使用unicode值来表示字符型常量
- char:1字符=2字节
- 布尔型
- boolean:true false
2、引用数据类型
- 类
- class
- 字符串
- 接口
- interface
- 数组
- arry:[]
3、基本数据类型之间的运算规则,不包含boolean型
-
自动类型提升
byte short int long float double
class Test1{ pubulic static void main(String[] args){ byte a1 = 1; short a2 = 2; int a3 = a1 + a2; System.out.println(a3) } }
-
当容量小的数据类型的变量与容量大的数据类型的变量做运算时,结果自动提升为容量大的数据类型,上述依次递增,此时的容量大小指的是表示数的范围的大和小而不是占有的存储空间
-
特别的:
当byte char short三种类型的变量做运算时,结果为int,同类也不例外
-
-
强制类型转换:自动类型提升的逆运算
- 需要使用强转符:()
- 可能导致精度损失
class Test2{ pubulic static void main(String[] args){ double a1 = 12.9; int a2 = (int)a1; System.out.println(a2) // 结果为12 截断操作 此处存在精度损失 // 没有精度损失 long l1 = 123; short s2 = (short)l1; // 精度有损失 int i2 = 128; byte b = (byte)i2; System.out.pyintln(b);//-128 } }
4、字符串类型String
-
属于引用数据类型
-
声明String类型变量时,使用一对""
-
String可以和八种基本数据类型变量做运算,且运算只能是连接运算 +
用String类型接收
5、二进制
4、运算符
- 算数运算符
class AriTest{
public static void main(String[] args){
// 除号 地板除,向下取整
int num1 = 12;
int num2 = 5;
int num3 = num1/num2;
System.out.println(num3); //2
// %:取余 结果符号与被模数的符号相同
int num4 = 12;
int num5 = 5;
System.out.println(num4 % num5); //2
// 前++ 先自增1 再运算
// 后++ 先运算 后自增1
自增一不会改变变量本身的数据类型
-- 同理
}
}
-
赋值运算符
- 当 = 两侧数据类型不一致时,可以使用自动类型转换或者使用强制类型转换原则进行处理
- 支持连续赋值
- 扩展 += -= *= /= %= 不会改变数据类型
-
比较运算符(关系运算符)
- 结果都是boolean型,要么为true 要么为 false
- 注意符号为 ==
-
逻辑运算符
&与&&
相同点1:运算结果相同
相同点2:符号左边为true 都会执行符号右边的运算
不同点:符号左边为false,&执行右边,&&不执行右边
开发中推荐&&
|与||
相同点1:运算结果相同
相同点2:符号左边为false 都会执行符号右边的运算
不同点:符号左边为true,|执行右边,||不执行右边
开发中推荐||
- 位运算符
- 操作的都是整型的数据
- (<<) : 在一定范围内,每向左移1位,相当于 * 2
- (>>): 在一定范围内,每向右移1位,相当于 / 2
- 三元运算符,可以嵌套使用,凡是三元运算都能改写为if-else语句,反之不成立
5、运算符优先级
原创不易,转载请标明出处!