1.Java对大小写很敏感
2.一个源文件可以有多个class,但是只能有一个public class,且源文件名必须和public 类名一样
3.常见的dos命令 cd 进入一个目录 cd..进入上一个目录 dir查看本目录下的文件和子目录列表
cls 清除屏幕命令 上下键 查找之前的命令 tab 自动补齐命令
4.更强大的记事本 notepad++ UltraEdit EditPlus 真正开发中,一般用集成开发环境IDE
常见有eclipse IntelliJ IDEA NetBeans
5.安装eclipse是根据jdk的版本,32位或64位,不是根据操作系统
数据类型和运算符
1.单行注释://开头
多行注释:/* */中间是注释,不能嵌套使用,还可以用来行内注释
文档注释:/** */中间是注释,用于项目打包生成API文档
2.标识符(标志符)
必须以字母、下划线“_”、美元符"$"开头,不能以数字开头
标识符其他部分可以是字母,下划线,美元符和数字的任意组合
Java标识符大小写敏感,且长度无限制
标识符不可以是Java的关键字
表示类名的标识符:每个单词的首字母大写,如,GoodMan
表示方法和变量的标识符,驼峰原则,第一个单词小写,从第二个单词开始首字母大写,如 eatFood();
注意:!!!Java不采用通常语言使用的ASCII字符集,而是采用的Unicode标准国际字符集,因此,
这里的字母的含义不仅仅是英文,还包括汉字等等。但是不建议用汉字定义标识符。
3.熟悉下关键字/保留字 goto虽然还在Java的保留字里,但是不让用,因为会导致程序结构的混乱
4.变量的本质
本质是 “可操作的存储空间”,空间位置是确定的,但是里面放什么值不确定。我们可通过变量名来访问
“对应的存储空间”,从而操纵这个“存储空间”存储的值
Java是一种强类型语言,每个变量都必须声明其数据类型,变量的数据类型决定了变量占存储空间大小
变量分为基本类型和引用类型 变量名必须是合法的标识符
变量声明是一条完整的语句,因此每一个声明都必须以分号结束
一行建议声明一个变量(可以声明多个,不建议这样)
(1)在java中,类的成员变量不用初始化即可直接使用,JVM会自动初始化
原始变量如int char short long byte初始化为0,float double初始化为0.0,
boolean初始化为false,对象初始化为null(也就是默认给你放个车模型就去)
(2)方法中,java可在使用时再声明,但必须赋值后才能使用。
那么为什么方法内声明的变量jvm不进行自动初始化呢?原因如下:
①编程语言不止一家,考虑到代码的移植性和兼容性。同时这也是编程的一种好习惯。
②这个和java的垃圾回收机制也有关系,以引用型变量为例,只有显式的给变量初始化了(赋初值为null),
那么上次调用的变量就可以更快的被回收,否则会影响内存。等等
局部变量(local variable)
方法或者语句块内部定义的变量,声明周期从声明位置开始到方法或者语句块结束(作用域)
局部变量定义的时候必须自行初始化或者赋值,才可以使用
成员变量(也叫做实例变量 member variable)
方法外部、类的内部定义的变量(没有被static修饰)。从属于对象,生命周期伴随对象始终。
成员变量会被自动初始化
静态变量(类变量 static variable)
使用static定义。从属于类,生命周期伴随类始终,从类加载到卸载。
5.常量和final
常量(Constant)通常指的是一个固定的值,例如 1、2、3,‘a’,'b',true,false,"hello world"等
Java中,被关键字final定义的都是常量,常量一旦被初始化后再不能改变
常量命名,全部大写字母中间加下划线隔开 例如 MAX_VALUE
6.基本数据类型
基本数据类型 3大类 8小类 数值型(整数型(byte1字节 short2字节 int4字节 long8字节)
浮点型(float4字节 double8字节))字符型 char 2字节 布尔型 boolean 1bit
引用数据类型 类class 接口interface 数组
7.整型变量/常量
byte 1字节 表数范围 -128-127
short 2字节 表数范围 正负3万
int 4字节 表数范围 正负21亿
long 8字节 表数范围 任何时候都够用了
Java语言整型常量的四种表示形式
十进制 如 90,100
八进制 要求以0开头
十六进制 要求以0X或者0x开头
二进制 要求以0B或者0b开头
8.浮点型变量/常量
浮点数不精确,不可以用于金融
float 4字节 表数范围 比long大
double 8字节 表数范围 比long大
两种表示形式
十进制
科学计数法形式,如 314e2
float称为单精度类型,尾数可以精确到7位有效数字,很多情况下,float精度很难满足要求
double成为双精度类型,是float的两倍,绝大部分应用程序用的是double类型,浮点数通常被默认为
double类型
float类型赋值是需要添加f,例如 float a = 2.14f;
需要比较数值的时候,可以用BigInteger和BigDecimal来比较任意整数和任意精度的浮点运算
9.字符型变量/常量
char类型用来表示在Unicode编码表中的65536字符
10.运算符
算术运算符
+ - * / % 二元运算符
整数运算:
如果两个操作数有一个为long,则结果也为long
没有long时,结果为int 即使操作数全部为short,byte,结果也是int
浮点运算:
如果两个操作数有一个为double,则结果为double
只有两个操作数都为float,则结果才为float
%运算,取模运算,余数的符号和左边操作数相同,如7%3=1,-7%3=-1,7%-3=1;
++ -- 一元运算符
b=a++ 是a先赋值,再自增 b=++a是a先自增,再赋值给b
赋值运算符
=赋值,a+=b也就是a=a+b;其他同理 a*=b+3相当于a = a*(b+3)
关系运算符
== != 所有类型都可以用
> < >= <= 用于数值比较,byte short int long char 等
逻辑运算符
逻辑与& 两边都是true 结果才是true
逻辑或| 两边只要有一个是true 结果就是true
逻辑非! 取反!false就是true, !true就是false
逻辑异或^ 相同就是false 不同就是true
短路与&& 只要有一个是false ,则直接返回false
短路或|| 只要有一个true,则直接返回true
一般都是用短路与和短路或,
11.位运算符指的是二进制的运算
按位与& 按位或| 按位异或^ 取反~ <<左移运算符,左移一位相当于乘以2
>>右移运算符 右移一位相当于除以2
12.字符串连接符
+ 左右两边只要有一个字符串,该+为连接符
13.条件运算符
x?y:z x为true返回y,反之为z
14.算术运算符>关系运算符>逻辑运算符>赋值运算符 逻辑非>逻辑与>逻辑或
15.自动类型转换 由容量小的自动转向容量大的 容量不是指字节数,例如long可以自动转为float
int 转float long转int long转double 会有精度损失
可以将整型常量直接赋值给byte,short,char等类型变量,不需要强制转换,只要不超过其表数范围
16.强制类型转化 (塑型)
在数据前加括号里面写自己想转的类型
17.基本类型常见错误 溢出问题
long类型最好用大写L结尾,小写l容易和1混淆
两个因子相乘,容易溢出,不能计算完后赋值再给类型,应该在计算的时候,先将一个因子long化后再计算
18.Scanner获得键盘输入
Scanner scanner = new Scanner(System.in); String name = scanner.nextLine();