java基础笔记
一、注释、标识符、关键字
1.注释
Java注释有三种,单行注释,多行注释,文档注释。注释主要是给人更加清晰地了解代码的内容。
格式:
- 单行注释
// 内容
- 多行注释
/* 内容 */
- 文档注释 /** 内容(可以包含作者名,时间等) */
例子:
public class Hello{
// name是名字(这就是单行注释)
String name="cs";
/*
getName方法是将namereturn出去(这就是多行注释)
*/
public String getName(){
return name;
}
/**
* (这就是文档注释)
* @param name
*/
public void setName(String name) {
this.name = name;
}
public static void main(String[] args){
}
}
2.标识符
标识符的组成:标识符由字母、下划线(_)、美元符号($)、数字(不能由数字开头)、甚至~~中文(不推荐)~~。不能使用关键字。
例子
public class Hello{
//标识符
int _10=0;
int $10=0;
int num10=0;
//....
}
3.关键字
java有许多内置的关键字,如下:
二、数据类型
java数据类型:基本数据类型(8种)和引用数据类型
基本数据类型:
包括 boolean(布尔型)、float(单精度浮点型)、char(字符型)、byte(字节型)、short(短整型)、int(整型)、long(长整型)和 double (双精度浮点型)共 8 种,详见表 1 所示。
类型名称 | 关键字 | 占用内存 | 取值范围 | 举例 |
---|---|---|---|---|
字节型 | byte | 1 字节 | -128~127 | 0000 0001 |
短整型 | short | 2 字节 | -32768~32767 | 100 |
整型 | int | 4 字节 | -2147483648~2147483647 | 100 |
长整型 | long | 8 字节 | -9223372036854775808L~9223372036854775807L | 100L |
单精度浮点型 | float | 4 字节 | +/-3.4E+38F(6~7 个有效位) | 3.0F |
双精度浮点型 | double | 8 字节 | +/-1.8E+308 (15 个有效位) | 3.0 |
字符型 | char | 2 字节 | ISO 单一字符集 | “中”、“A”等 |
布尔型 | boolean | 1 字节 | true 或 false |
引用数据类型:
- 类
- 接口
- 数组
三、类型转换
java类型有低到高:byte,short,char->int->long->float->double; boolean没有转换
- 高类型装低类型,必须强制转换
- 低类型转高类型,可以自动转换,也可以进行强制转换
- 强制转换格式:
(类型)变量名
//int 转 float
int a=10;
float b=a;
// float 转 int
float c=10.0f;
int d=(int)c;
四、变量和常量
1. 变量
变量是Java程序中的基本存储单元,它的定义主要包括变量名、变量类型和变量的作用域三个部分。
变量名:是一个标识符,要具有可读性(见其名知其义)。
变量类型:就是数据类型。
变量的作用域:局部变量,全局变量,类变量,方法参数变量。
格式:[修饰符,可以多个,顺序不重要] 变量类型 变量名 = 值;
例子:
public class Hello{
// 类变量
static String name="我是类变量";
String name="我是全局变量";
public void test(){
String name="我是局部变量,只在test方法内有效";
if(true){
String name="我是局部变量,只在if中有效";
}
}
public void test(String name1){
this.name=name1;//name1就是方法参数变量
}
public static void main(String[] args){
}
}
2.常量
常量就是定义后无法再修改的变量,通过修饰符final定义。
字符串常量:用双引号括起来的部分。如“123”。
整型常量:直接写数字(没小数点)。如123。
浮点常量:有小数。如2.5F , 2.5。
字符常量:单引号括起来的单个字符。如‘A’。
布尔常量:只有true、false
空常量:null(没有任何数据)
例子:
public class Hello{
static final String name="我是类常量";
final String name="我是常量";
public static void main(String[] args){
}
}
五、运算符
1.算术运算符
运 算 符 | 名 称 | 说 明 | 例 子 |
---|---|---|---|
- | 取反符号 | 取反运算 | b=-a |
++ | 自加一 | 先取值再加一,或先加一再取值 | a++ 或 ++a |
– | 自减一 | 先取值再减一,或先减一再取值 | a-- 或 --a |
运 算 符 | 名 称 | 说 明 | 例 子 |
---|---|---|---|
+ | 加 | 求 a 加 b 的和,还可用于 String 类型,进行字符串连接操作 | a + b |
- | 减 | 求 a 减 b 的差 | a - b |
* | 乘 | 求 a 乘以 b 的积 | a * b |
/ | 除 | 求 a 除以 b 的商 | a / b |
% | 取余 | 求 a 除以 b 的余数 | a % b |
运算符 | 名称 | 说明 | 例子 |
---|---|---|---|
? : | 三目运算符 | 如果a>0,则返回"好的",否则“坏的” | a>0?“好的”:“坏的” |
运 算 符 | 名 称 | 说明 | 例 子 |
---|---|---|---|
+= | 加赋值 | a=a+b | a += b |
-= | 减赋值 | a=a-b | a -= b |
*= | 乘赋值 | a=a*b | a *= b |
/= | 除赋值 | a=a/b | a /= b |
%= | 取余赋值 | a=a%b | a %= b |
运算符 | 用法 | 含义 | 说明 | 实例 | 结果 |
---|---|---|---|---|---|
&& | a&&b | 短路与 | ab 全为 true 时,计算结果为 true,否则为 false。 | 2>1&&3<4 | true |
|| | a||b | 短路或 | ab 全为 false 时,计算结果为 false,否则为 true。 | 2<1||3>4 | false |
! | !a | 逻辑非 | a 为 true 时,值为 false,a 为 false 时,值为 true | !(2>4) | true |
| | a|b | 逻辑或 | ab 全为 false 时,计算结果为 false,否则为 true | 1>2|3>5 | false |
& | a&b | 逻辑与 | ab 全为 true 时,计算结果为 true,否则为 false | 1<2&3<5 | true |
运算符 | 含义 | 说明 | 实例 | 结果 |
---|---|---|---|---|
> | 大于运算符 | 只支持左右两边操作数是数值类型。如果前面变量的值大于后面变量的值, 则返回 true。 | 2>3 | false |
>= | 大于或等于运算符 | 只支持左右两边操作数是数值类型。如果前面变量的值大于等于后面变量的值, 则返回 true。 | 4>=2 | true |
< | 小于运算符 | 只支持左右两边操作数是数值类型。如果前面变量的值小于后面变量的值,则返回 true。 | 2<3 | true |
<= | 小于或等于运算符 | 只支持左右两边操作数是数值类型。如果前面变量的值小于等于后面变量的值, 则返回 true。 | 4<=2 | false |
== | 相等运算符 | 如果进行比较的两个操作数都是数值类型,无论它们的数据类型是否相同,只要它们的值相等,也都将返回 true。 如果两个操作数都是引用类型,只有当两个引用变量的类型具有父子关系时才可以比较,只要两个引用指向的不是同一个对象就会返回 true。 Java 也支持两个 boolean 类型的值进行比较。 | 44 97’a’ 5.05 truefalse | true true true false |
!= | 不相等运算符 | 如果进行比较的两个操作数都是数值类型,无论它们的数据类型是否相同,只要它们的值不相等,也都将返回 true。 如果两个操作数都是引用类型,只有当两个引用变量的类型具有父子关系时才可以比较,只要两个引用指向的不是同一个对象就会返回 true。 | 4!=2 | true |
运算符 | 含义(变为二进制进行计算) | 实例 | 结果 |
---|---|---|---|
& | 按位进行与运算(AND),全为1才为1 | 4 & 5 | 4 |
| | 按位进行或运算(OR),全为0才为0 | 4 | 5 | 5 |
^ | 按位进行异或运算(XOR),相同为0,不同为1 | 4 ^ 5 | 1 |
~ | 按位进行取反运算(NOT),1变为0,0变为1 | ~ 4 | -5 |
<< | 左移,每左移1位就乘2 | 2<<2 | 2*2*2=8 |
>> | 右移,每右移1位就除以2 | 8>>2 | 8/2/2=2 |
优先级 | 运算符 | 结合性 |
---|---|---|
1 | ()、[]、{} | 从左向右 |
2 | !、+、-、~、++、– | 从右向左 |
3 | *、/、% | 从左向右 |
4 | +、- | 从左向右 |
5 | «、»、>>> | 从左向右 |
6 | <、<=、>、>=、instanceof | 从左向右 |
7 | ==、!= | 从左向右 |
8 | & | 从左向右 |
9 | ^ | 从左向右 |
10 | | | 从左向右 |
11 | && | 从左向右 |
12 | || | 从左向右 |
13 | ?: | 从右向左 |
14 | =、+=、-=、*=、/=、&=、|=、^=、~=、«=、»=、>>>= | 从右向左 |
六、包机制
java项目包命名:一般为com.公司名称(或个人名称).具体的包名。如:com.baidu.base
七、控制台运行java
编译.java文件为.class文件,使用javac .java文件名。
运行.class文件,使用java .class文件名。