一、HelloWorld常见问题
1、 编译的时候要带文件扩展名,而运行的时候不要带文件扩展名
2、 public class HelloWorld {}
标注的第三个词为文件名,否则会发生错误
3、 String中的s要大写
4、 main等拼写错位
5、 标点符号为英文
//第一行的第三个单词必须和所在的文件名称完全一样,大小写也要一样
//public class后面代表定义一个类的名称,类是Java当中所有源代码的基本组织单位-外壳
public class HelloWorld{
//第二行的内容是固定写法,代表main方法,是程序执行的起点
public static void main(String[] args) {
//第三行代表打印输出语句(屏幕显示)
System.out.println("Hello World!");
}
}
二、注释
1、 单行注释 //开头到本行结束都是注释信息
2、 多行注释(区块注释) /* */之间所有内容都是多行注释
三、关键字
1、关键字的概念与特征
@后面的内容是电子邮箱中由特殊含义的、被保留的、不能随意使用的字符
2、关键字的特点:
1)完全小写
2)在增强版的记事本中有特别的颜色
四、标识符
1、标识符的概念与规则
自己起的名字都叫标识符,比如类的名字、方法的名字和变量的名字等等
2、命名规则:
1)标识符可以包含英文26个字母(区分大小写)、0-9、$、_下划线
2)不能以数字开头
3)不能是关键字
3、命名规范
1)类名:首字母大写,后面每个单词首字母大写(大驼峰)
2)变量名:首字母小写,后面每个单词首字母大写(小驼峰)
3)方法名:同变量名
五、常量
1、常量的概念:
程序运行期间固定不变的数据
2、分类:
1)字符串常量:双引号引起来的部分,叫做字符串常量,“abc”
2)整数常量:直接写上的常量,没有小数点,100、200、0、-250
3)浮点数常量:直接写上的常量,有小数点,2.5、0.0
4)字符常量:用单引号引起来的单个字符,’A’、’9’、’中’(有且只有一个 没有内容也不行)
5)布尔常量:true&false
6)空常量:null 没有任何数据
- 基本数据类型:
数据类型 | 关键字 | 内存占用(字节) | 取值范围 |
---|---|---|---|
字节型 | byte | 1 | -128~127 |
短整型 | short | 2 | -32768~32767 |
整形 | Int | 4 | -2^31 ~ 2^31(21个亿) |
长整型 | long | 8 | -263~263 |
单精度浮点数 | float | 4 | – |
双精度浮点数 | double | 8 | – |
字符型 | char | 2 | 0~65535 |
布尔类型 | boolean | 1 | true,false |
- 引用数据类型(字符串、类、数组、接口、lambda)
3、注意事项:
1)字符串不是基本类型,而是引用类型
2)浮点型可能只是一个近似值,并非精确的值
3)数据范围与字节数不一定相关,float用的是科学计数法,表示的范围更大,但是所占用的空间更小
4)浮点数当中默认类型是double。如果一定要使用float类型,需要加上一个后缀F
5)整数默认类型为int。如果一定要使用long类型,需要加上一个后缀L
byte num1 = 30;
对于byte/short/char三种类型来说,如果右侧没有超过左侧的范围,那么java编译器会自动隐含地补上强制类型的小括号()
short result = 5 + 8;
在给变量赋值的时候,如果右侧地表达式当中都是常量,没有任何变量,编译之后,得到的.class字节码文件中相当于:short result = 13;
称为“编译器的常量优化”
六、变量
1、变量的概念:
常量是固定不变的数据,那么在程序中可以变化的量称为变量
2、创建一个变量使用的格式:
数据类型 变量名称;
变量名称 = 数据值(把右边的数据值交给左边)
或者一步到位:
数据类型 变量名称=数据值
3、变量的注意事项
1)如果创建多个变量,变量之间的名称不可以重复
2)对于float和long类型来说,字母后缀不可以丢掉
3)使用byte和short类型的变量,那么右侧的数据值不能超过左侧类型的范围
4)没有进行赋值的变量,不能直接使用
5)变量的使用不能超过作用域的范围(从变量定义的开始到所属的大括号结束)
七、数据类型的转换
当数据类型不一样时,将会发生数据类型转换
1、 自动类型转换(隐式)
特点:代码不需要进行特殊处理,自动完成
规则:数据范围从小到大 int->long
2、 强制转换
特点:代码需要进行特殊的格式处理,不能自动完成
格式:范围小的类型 范围小的变量名=(范围小的类型)原本范围大的数据
int num=(int)100L;
3、注意事项:
1)强制类型转换一般不推荐使用,因为有可能发生精度损失(不是四舍五入,小数部分全部舍去)和数据溢出
2)byte/short/char这三种类型都可以发生数学运算,首先被提升成int类型,然后再进行计算
3)boolean类型不能发生数据类型转换
八、ASCII编码表
计算机中所有的数据都是用二进制储存的
ASCII码表:美国信息交换标准代码
Unicode码表:万国码。也是数字和符号的对照关系
48->0
65->A
97->a
九、运算符
运算符:进行特定操作的符号。
表达式:用运算符连接起来的式子
1、 算术运算符
1)首先计算得到表达式的结果,然后再打印输出这个结果
2)变量和常量之间可以混合使用
3)对于一个整数的表达式来说,除法用的是整除,只看商不看余数
4)一旦运算中有不同类型的数据,那么结果是数据范围大的那个
算数运算符 | 用法 |
---|---|
+ | 常见用法:1)对于数值来说,加法 2)对于字符,计算之前会被转变为int 3)对于String,串联操作 |
* | 相乘 |
/ | 相除 |
% | 取模(只对整数有意义) |
++(- -)自增(自减) | ,让一个变量增加1,或减少1 |
自增自减注意事项:
1) 单独使用:前++和后++没有任何区别
2) 混合使用:
A. 前++【先加后用】,变量立马加一,然后拿着结果使用
B. 后++【先用后加】,首先使用变量原来的值,然后再让变量+1
2、赋值运算符
1) 基本赋值运算符
= 将右侧的数据交给左侧
2) 符合赋值运算符
符号 | 写法 | 作用 |
---|---|---|
+= | a+=3 | a=a+3; |
-= | a-=4 | a=a-4; |
* = | a*=5 | a=a*5; |
/= | a/=6 | a=a/6; |
%= | a%=7 | a=a%7; |
注意事项:
a.只有变量可以使用赋值运算符
b.符合赋值运算符中隐含了强制类型转换
3、比较运算符
符号 | 含义 |
---|---|
== | 比较两侧结果是否相同 |
< | 小于 |
> | 大于 |
<= | 小于等于 |
>= | 大于等于 |
!= | 不等于 |
注意事项:
1) 比较运算符的结果一定是boolean值
2) 多次判断必须分开写
4、逻辑运算符
符号 | 含义 |
---|---|
&& | 与 |
|| | 或 |
! | 非 |
注意事项:
1)与、或具有短路效果,如果左边已经可以判断得到的最终结果,那么右边的代码将不再执行,从而就节省一定的性能。
2)逻辑运算符只用于左右各有一个布尔值
3)与、或两种运算符,如果有多个条件。那么可以连续写
5、三元运算符
三元运算符:需要三个数据
格式:
数据类型 变量名称=条件判断?表达式A:表达式B
如果为true,将表达式A的值赋给左侧的变量
如果为false,将表达式B的值赋给左侧的变量
注意事项:
1) 必须同时保证A和B都符合左侧数据类型的要求
2) 三元运算符的结果必须被使用