基本语法

一、注释

  1. 注释的作用
    1. 提高可读性
    2. 调试的时候屏蔽暂时不用的代码
    3. 生成文档
  2. 说明
    1. 提高通用性,最好用英文来写
    2. 不加没有额外价值的注释
    3. Java有3种注释

二、java的字符集

  • 采用Unicode码
  • 跨平台移植性好
  • 包括普通字符和转义字符两类

三、java关键字

  • 关键字用英文小写,约50个
  • 用于数据类型的关键字
  • 用于语句的关键字
  • 用于修饰的关键字
  • 用于方法、类、接口、包的关键字
  • 53个关键字解释

四、java的标识符

  1. 定义:以字母、下划线或者$号开头,中间可以带数字,也可以带美元号
  2. 用途:作为变量名、方法名、接口名和类名
  3. 要求:
    1. 严格区分大小写
      1. 见名知意,可读性好(循环变量可以用单字符)
      2. 用户自己取的标识符不能和系统预定义标识符同名,约定用户定义标识符也不用下划线开头
    2. 习惯约定:
      1. 变量名对象名方法名,首字母小写,从第二个单词开始每个单词首字母大写
        • eg:writeDouble、drawLine、getName等
      2. 类名、接口名首字母大写
        • eg:WindowsEvent
      3. 常量名所有字母均大写、单词之间用下划线分隔
      4. 包名全部小写


数据类型

一、基本类型

  1. 学习的时候注意:使用的场合、取值范围、可以进行的运算操作
  2. 分类:
    1. 基本(简单)类型:
      • 整型、浮点型、字符型、布尔型
      • 与面向过程语言类似,可以简化编程
    2. 引用类型:
      • 数组、类、接口
        • 对应基本的double类型,还存在一个类Double(功能更强)
        • 对应char还有一个Character(功能更强)
        • 严格的面向对象语言种不应该有基本数据类型存在
        • java继承了面向过程的一些东西,故非严格意义上的完全面向对象编程语言
  3. 说明:
    • 不支持c种的指针、结构、联合、枚举
    • 增加了两种数据类型:byte字节型和Boolean布尔型
    • java没有sizeof运算符,各种数据类型占用固定的内存长度,与平台无关,跨平台移植性好
    • java的每种数据类型都有一个缺省值,安全稳定性好
类型 默认值 取值范围 大小
Byte 0 -2^7——2^7-1 1byte=8bit
char ‘\u0000’ 0——2^16-1 2byte
short 0 -2^15——2^25-1 2byte
int 0 -2^31——2^31-1 4byte
float 0.0f -2^31——2^31-1 4byte
long 0L -2^63——2^63-1 8byte
double 0.0d -2^63——2^63-1 8byte
boolean false true\false 1byte/4byte
所有引用数据类型 null
  1. 注意:
    • 增加byte目的是解决不同计算机上多字节存储顺序不一致的问题
    • java中没有无符号整数
    • 布尔类型不能直接和其他数据类型转换,true和false均为小写
  2. 例:
    1. byte j = 123
  1. public class HelloWorld
  2. {public static void main(String[]args)
  3. {
  4. System.out.println("Float.MAX_VALUE="+Float.MAX_VALUE);//用于测试float数据类型支持的最大值
  5. System.out.println("Float.MIN_VALUE="+Float.MIN_VALUE);//用于测试float数据类型支持的最大值
  6. }
  7. }

结果:

  1. Float.MAX_VALUE=3.4028235E38
  2. Float.MIN_VALUE=1.4E-45//这里不代表没有复数,而是最小精度,都是可以带负号的

二、常量

  • 字符串常量"A","Hello\n world!"
  • 符号常量的优点:
    • 提高可读性:见名知意,见名知用途
    • 便于程序修改:一改全改(最好全部大写)
  • 常量定义格式:

final 类型符 符号常量名=常量值;//必须要初始化,java语言不支持宏

三、变量

  • 变量的三个属性:名字、类型和值
  • 定义变量的格式
  • 类型符 变量名[=变量名];
  • 注意:
    • 声明变量的地方有两处,一处在方法内,另一种实在类中方法外
    • 方法内定义的变量叫做局部变量,也成自动变量临时变量或者栈变量
    • 类中方法外定义的变量叫做成员变量
    • 局部变量必须显式初始化(赋值)
  1. public class A
  2. {
  3. int x=2;//Member variable
  4. public void f() {
  5. System.out.println("x1="+x);//member variable
  6. int x = 3;//local variable
  7. System.out.println("x2="+x);//local variable
  8. }
  9. public static void main(String[] args) {
  10. A a=new A();//新建一个a对象
  11. a.f();
  12. System.out.println("a.x="+a.x);//用对象访问的时候,只能访问menber variable
  13. }
  14. }
  • 类中定义的成员变量作用域式整个类
  • 方法中定义的局部变量作用域是声明处到语句块结束出,块外不可使用
  • 块内声明的局部变量将屏蔽其所在类中的同名成员变量
  • 同一个块中定义了两个同名变量,则会引起冲突

  • 四、数学函数

  • 位置:java.lang.Math
  • 常用函数:
    • Math.max(560,289)
    • Math.min(560,289)
    • Math.pow(5,2)
    • Math.random()//随机数
    • Math.sin(0)
    • Math.cos(0)
    • Math.sqrt(144)
    • Math.round(6.6)//四舍五入
  • 使用是可以不带Math,而写做*.max(560,289)

运算符和表达式

一、赋值运算符

  • =,+=,-+,*=,/=,%=等
  • 格式:变量名 = 表达式;
  • 注意
  • eg1:
    • int a=3,b=5,c;
    • a *= 2+3;
    • a=b=c=0//error: int a=b=c=0;
  • eg2:
    • 交换ab
    • 法1:t=a;a=b;b=a;
    • 法2:x=x+y;y=x-y;x=x-y;

二、算术运算符

        • / %
  • 运算符重载“+”
    • 2+3=5
    • “2”+”3”=”23”
    • “abc”+”de”=”abcde”

三、关系运算符

  • = <= > < != ==

  • 关系运算符结果为true或false
  • ==为关系运算符,=为赋值运算符

四、逻辑运算符

  • && || !
  • 满足短路运算条件

五、条件运算符

  • A:B?C