注释
少量代码时,自己可以看懂,但是当项目结构一旦复杂起来就需要用到注释.
注释并不会被执行,是给写代码的人看的
//单行注释,只能注释单行
/*
多行注释
可以注释一段文字
*/
/**
*JavaDoc
*文档注释
*/
标识符
java所有的组成部分都需要名字.类名,变量名以及方法名都被称为标识符.
标识符的注意点:
- 所有的标识符都是以字母(A-Z或者a-z),美元符号($),或者下划线(_)开始
- 首字母之后可以是字母(A-Z或者a-z),美元符号($),或者下划线(_)或数字的组合
- 不能使用 java关键字作为变量名或者方法名
- 标识符是大小敏感的
- 可以使用中文命名,但是一般不建议使用,也不建议使用拼音
数据类型
Java语言提供了八种基本类型。六种数字类型(四个整数型,两个浮点型),一种字符类型,还有一种布尔型.
整数型 | byte | short | int | long |
---|---|---|---|---|
位数 | 8位 | 16位 | 32位 | 64 位 |
字节个数 | 1个 | 2个 | 4个 | 8个 |
最小值 | -128(-2^7) | -32768(-2^15) | -2,147,483,648(-2^31) | -9,223,372,036,854,775,808(-2^63) |
最大值 | 127(2^7-1) | 32767(2^15 - 1) | 2,147,483,648(2^31-1) | 9,223,372,036,854,775,807(2^63 -1) |
默认值 | 0 | 0 | 0 | 0L |
例子 | byte a = 100; | short s = 100; | int a = 100; | long a = 100L; |
浮点型 | float | double |
---|---|---|
字节个数 | 4个 | 8个 |
位数 | 32 | 64 |
精度 | 单精度 | 双精度 |
默认值 | 0.0f | 0.0d |
例子 | float f1 = 234.5f; | double d1 = 123.4; |
字符型 | char |
---|---|
位数 | 16位 |
字节个数 | 2个 |
最小值 | \u0000(即为 0) |
最大值 | \uffff(即为 65535) |
例子 | char c = 'A'; |
布尔型 | boolean |
---|---|
位数 | 1位 |
取值 | true\false |
默认值 | false |
例子 | boolean bo = true; |
引用数据类型 |
---|
类 |
接口 |
数组 |
类型转换
整型、实型(常量)、字符型数据可以混合运算。运算中,不同类型的数据先转化为同一类型,然后进行运算
低 ------------------------------------> 高
byte,short,char—> int —> long—> float —> double
数据类型转换必须满足如下规则:
-
不能对boolean类型进行类型转换
-
不能把对象类型转换成不相关类的对象
-
在把容量大的类型转换为容量小的类型时必须使用强制类型转换
-
转换过程中可能导致溢出或损失精度,例如:
int i =128; byte b = (byte)i; System.out.println("i="+i); System.out.println("b="+b);
输出结果为:
i=128 b=-128
因为 byte 类型是 8 位,最大值为127,所以当 int 强制转换为 byte 类型时,值 128 时候就会导致溢出
-
浮点数到整数的转换是通过舍弃小数得到,而不是四舍五入,例如:
(int)12.6 == 12; (int)-37.54f == -37
变量
变量就是可以变化的量,java是一种强类型语言,每个变量都必须声明其类型.
变量是程序中最基本的存储单元,其要素包括变量名,变量类型和作用域.
注意事项:
- 每个变量都有类型,类型可以是基本类型,也可以是引用类型
- 变量名必须是合法的标识符
- 变量声明是一条完整的语句,因此每个声明都必须以分号结束
变量类型:
- 类变量:独立于方法之外的变量,用 static 修饰
- 实例变量:独立于方法之外的变量,不过没有 static 修饰
- 局部变量:类的方法中的变量
public class Variable{
static int allClicks=0; // 类变量
String str="hello world"; // 实例变量
public void method(){
int i =0; // 局部变量
}
}
变量的命名规范:
-
所有方法、变量、类名:见名知意
-
类成员变量:首字母小写和驼峰原则:monthSalary 在第一个单词之后,后面的单词首字母大写
-
局部变量:首字母小写和驼峰原则
-
常量:大写字母和下划线 MAX_VALUE
-
类名:首字母大写和驼峰原则:Hello , GoodMan
-
方法名:首字母小写和驼峰原则:getName
常量
常量:初始化后不能再改变的值,不会变动的值
可以理解为一种特殊的变量,它的值被设定后,在程序运行过程中不允许被改变
常量名一般使用大写字符
final 常量名 = 值;
final double PI = 3.14;
基本运算符
常用的运算符:
- 算数运算符: +, -, *, /, %, ++, –
- 赋值运算符: =
- 比较运算符: >, <, >=, <=, ==, !=,instanceof
- 逻辑运算符: &, |, &&, ||, !
- 条件运算符: ?, :
算术运算符
- 后缀自增自减(a++,a–) 先进行表达式运算,再做加(减)法运算
- 前缀自增自减(++a,–a) 先进行加(减)法运算,再做表达式的运算
赋值运算符
= 赋值 += 加等于 -= 减等于
*= 乘等于 /= 除等于 %= 模等于
逻辑运算符
&,与
两边都要为true,结果才为true,否则为false
两边只要有一个为false,结果就为false
条件1 | 与 | 条件2 | 结果 |
---|---|---|---|
true | & | true | true |
true | & | false | false |
false | & | true | false |
false | & | false | false |
|,或
两边都为false结果才是false,否则为true
两边只要有一个true,结果就为true
条件1 | 或 | 条件2 | 结果 |
---|---|---|---|
true | | | true | true |
true | | | false | true |
false | | | true | true |
false | | | false | false |
&(与) 和 &&(短路与) 的区别:
&:无论左边结果为什么,两边都参与运算
&&:当左边的结果为false的时候,右边不参与运算
|(或) 和 ||(短路或) 的区别:
|:两边都参于运算
||:当左边为true的时候,右边不参与运算
! 非,就是取反的操作,把true变为false,把false变为true;不可以直接进行取反,要以表达式的形式进行取反
条件运算符
三元运算符(三目运算符)
(条件表达式)?表达式1:表达式2;
如果条件为true,运算后的结果是表达式1;
如果条件为false,运算后的结果是表达式2;
int score = 80;
String type = score < 60 ? "不及格" : "及格";
输出:及格
int score = 50;
String type = score < 60 ? "不及格" : "及格";
输出:不及格
包机制
为了更好的组织类,java提供了包机制,用于区别类名的命名空间.
包语句的语法格式为:
package pk1[.pk2[.pk3...]];
一般利用公司域名倒置作为包名,例如:
CSDN-专业开发者社区 的网址是:
www.csdn.net
开发时的包名可以写成:
net.csdn.www
net.csdn.xx(某些模块)
为了能够使用某一个包的成员,需要在java程序中明确导入的包,使用"import"语句可以完成此功能
import package1[,package2...].(classname|*);
例如:
import net.csdn.html;//导入html包
import net.csdn.*;//导入csdn下的所有包