黑马程序员_java基础知识点

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流------

1 注释: 就是解释说明程序的文字
分类:
a: 单行注释 格式: // 解释说明程序的文字
b: 多行注释 格式:
c: 文档注释 格式:
多行注释的注意事项:
多行注释不能嵌套使用
注释的作用:
a: 解释说明程序
b: 调试程序
2   关键字: 就是被java语言赋予特殊含义的单词
特点:
组成关键字的字母都是小写
注意事项:
a: goto和const作为java语言的保留字
b: 类似于editplus这样的高级文本编辑器,对关键字都是有颜色变化的
3 标识符: 就是给类,接口,方法,变量,常量起名字
组成规则:
a: 可以由英文字母组成
b: 可以由数字字符组成
c: 可以由$和_
注意事项:
a: 不能以数字开始
b: 不能是java语言中的关键字
c: 区分大小写
   4 java 是靠跨平台的,java在不同的平台上运行不同的jvm
   所以jvm不是跨平台的
 5 常量: 就是在程序的执行过程中其值不发生改变的量
分类:
a: 字面值常量
(1): 字符串常量 使用双引号括起来的内容 "HelloWorld"
(2):      整数常量 所有的整数 12 , 34
(3): 小数常量 所有的小数 12.34
(4): 字符常量 使用单引号括起来的内容 'a' , 'A' , '0' (注意事项: 单引号中只能是单个字母 , 单个数字, 单个符号)
(5): 布尔常量 true 和 false
(6):      空常量 null(数组部分讲解)
b: 自定义常量(面向对象)
6 不同进制的数据表现形式:
a: 二进制 由 0 , 1   组成 由0b开始
b: 八进制 由 0...7   组成 由0开始
c: 十进制 由 0...9   组成 整数默认是10进制数据
d: 十六进制 由 0...9 , a , b , c , d , e , f(大小写均可) 由0x开始
7 数据类型的分类:
a: 基本数据类型
(1): 数值型
a: 整数型 字节数 范围
byte 1 -128 ~ 127
short 2
int 4
long 8
b:   浮点数
float 4
double 8
(2): 字符型 char 2 0~65535
(3): 布尔型 boolean 1
b: 引用数据类型(以后在讲解): 数组 , 类, 接口
整数默认是int类型,浮点数默认是double类型
我们在定义long类型的变量的时候,需要对该数添加一个标志使用: L或者l 建议使用L
我们在定义float类型的变量的时候,需要对该数添加一个标志使用: F或者f 建议使用f
定义变量的注意事项:
a: 作用域问题
变量定义在哪一级大括号中,哪个大括号的范围就是这个变量的作用域。相同的作用域中不能定义两个同名变量。
b:初始化值问题
没有初始化值不能直接使用
c: 在一行上建议只定义一个变量
可以定义多个,但是不建议
 8 在做运算的时候我们要求参与运算的数的数据类型要一致
重点掌握隐式转换:
a: boolean类型不能转换为其他的数据类型
b: byte,short,char — int — long — float — double
c: byte,short,char之间不转换,他们参与运算首先转换为int类型
强制类型转换:
格式: 目标数据类型 变量名 = (目标数据类型)(待转换的数据) ;
如 byte a = 2 ; 
int b = 3 ;
byte c = (byte) (a + b) ;
9   Java语言中的字符char可以存储一个中文汉字吗?
可以。因为Java语言采用的是Unicode编码。Unicode编码中的每个字符占用两个字节。
所以,Java中的字符可以存储一个中文汉字
10 关于字符创参与运算的问题
class Test_01{
    public static void main(String[] args)  {

        // 字符在参与运算
        System.out.println('a'); // a
        
        // 'a'对应的int类型的值就是97
        System.out.println('a' + 1); // 98 ,java中默认的char转化为int型参与运算
        
        // 字符串参与运算
        // 特点:
        //  a: 任何数于字符串相加得到的结果都是一个新的字符串
        //  b: 加号在这里表示的是字符串连接符
        System.out.println("hello" + 'a' + 1); // helloa1
        System.out.println('a' + 1 + "hello"); // 98hello
        //按照从左到右运算顺序,如果前面有字符串则 + 表示连接符,否则为数值相加
        System.out.println("5+5="+5+5); // 5+5=55
        System.out.println(5+5+"=5+5"); // 10=5+5
    }
}

11 运算符分类:
算术运算符
赋值运算符
比较运算符
逻辑运算符
位运算符
三元运算符
算术运算符:
+ , - , * , / , % , ++ , --
/ 特点: 两个整数相除,得到的结果是一个整数,并且获取的是除法运算的商 . 如果我们想得到小数,那么请使用浮点数float,double参与运算
% 特点: 获取的是除法运算的余数, 得到的结果的正负号和左边的数一致
注意++ 和 --运算符:
单独使用:
++在前和++在后对计算结果是没有影响的
参与运算的使用:
++在前首先进行自增1,然后在参与运算
++在后首先参与运算,在进行自增1
++运算符的作用是自增1
--运算符的作用是自减1
赋值运算符:
= , += , -= , *= , /= , %=
注意事项:
左边必须是变量
关系运算符:
== , != , < , > , <= , >= , instanceof
注意事项:
a: 无论是操作的简单的还是复杂的,返回的结果都是一个boolean类型的值
b: 不能将 "==" 写成一个 "="
12 逻辑运算符:
&(并且) , |(或者) , !(非) , ^(异或) , &&(短路与) , ||(短路或)
注意事项:
逻辑运算符是用于连接boolean类型的表达式或者是值
结论:
& : 有false则false
| : 有true则true
^ : 相同为false,不同为true
举例: 情侣关系
男男 , 女女 , 男女 , 女男
! : 非false则true,非true则false
偶数个不变身
逻辑双与&&(短路与) , 逻辑双或||(短路或)
&&的特点:
当左边为false的时候,右边就不执行
||的特点:
当左边为true的时候,右边就不执行
逻辑双与与逻辑单与的结果是一致的:双与运算符可以节约资源,提高运算速度
开发中常用的逻辑运算符:
&& , || , !
13 位运算符:
&(与) , |(或) , ^(异或) , ~(按位取反), <<(左移) , >>(右移) , >>>(无符号右移)
   位异或运算符的特点:(根据这个我们可以互换两个变量的值)
一个数被另一个数异或两次其值不变
class Test_02 {

    public static void main(String[] args)  {
        // 请自己实现两个整数变量的交换
        // 定义两个int类型的变量
        int a = 20 ;
        int b = 30 ;
        
        System.out.println("变换前: a : " + a + " , b: " + b);
        
        // 第一种方式: 使用第三方变量(开发中用)
        int temp = a ;
        a = b ;
        b = temp ;

        // 第二种方式: 使用位异或运算符的特点(面试中使用)
        // 左边是: a , b , a
        // 右边是: a ^ b
        a = a ^ b ; // 20 ^ 30 = a
        b = a ^ b ; // 20 ^ 30 ^ 30 = 20  b = 20 ;
        a = a ^ b ; // 20 ^ 30 ^ 20 = 30     a = 30 ;
        
        // 第三种做法
        a = a + b ; // a = 50
        b = a - b ; // 50 - 30 = 20 b = 20 
        a = a - b ; // 50 - 20 = 30 a = 30
       
        // 第四种做法
        // 一句话搞定
        b = (a + b) - (a = b) ; // 50 - 30 = 20 , b = 20 ,a = 30 
        
        System.out.println("变换后: a : " + a + " , b: " + b);
    }
}

<<:左移 空位补0,被移除的高位丢弃。
>>:右移 被移位的二进制最高位是0,右移后,空缺位补0;最高位是1,高位补1。
>>>:无符号右移 被移位二进制最高位无论是0或者是1,空缺位都用0补。 特点: 得到的结果都是一个正数
14 三元运算符:
格式: (关系表达式) ? 表达式1 : 表达式2 ;
执行流程:
首先计算关系表达式的值,看其返回结果是true还是false ,如果是true就执行表达式1 , 如果是false就执行表达式2 ;
15 键盘录入数据
步骤:
a: 导包
格式: import java.util.Scanner ;
位置: 在class上边
b: 创建键盘录入对象
格式: Scanner sc = new Scanner(System.in);
c: 获取键盘录入数据
格式: int x = sc.nextInt(); 
16 流程控制语句
分类:
顺序结构
执行流程: 从上往下依次执行
选择结构
if语句:
if语句的第一种格式:
if(比较表达式){
语句体;
}
执行流程: 首先计算比较表达式的值,看其返回结果是true还是false
如果是true就执行语句体, 如果是false就不执行语句体.
if语句的注意事项:
a:比较表达式无论简单还是复杂,结果必须是一个boolean类型的
b:如果if语句的语句体是一条语句,大括号可以省略,如果是多天语句,就不能省略,建议不要省略
c:一般来说: 有左大括号的,就没有分号,如果有分号的就没有左大括号
if语句的第一种格式:
if(比较表达式){
语句体1 ;
}else {
语句体2 ;
}
执行流程:
首先计算比较表达式的值,看其返回结果是true还是false
如果是true就执行语句体1 ;如果是false就执行语句体2 ;
if语句的第三中格式:
if(比较表达式1){
语句体1 ;
}else if(比较表达式2){
语句体2 ;
}else if(比较表达式3){
语句体3 ;
}
...
else {
语句体 n + 1 ;
}
执行流程:
首先计算比较表达式1的值看其返回结果是true还是false,如果是true,就执行语句体1 ,if语句结束,
如果是false,计算比较表达式2的值看其返回结果是true还是false,如果是true,就执行语句体2 ,if语句结束,
如果是false,计算比较表达式3的值看其返回结果是true还是false,如果是true,就执行语句体3 ,if语句结束,
...
如果没有找到对应的if语句,那么就执行else对应的语句体
switch语句:
格式:
switch(表达式){
case 值1 :
语句体1 ;
break ;
case 值2 :
语句体2 ;
break ;
case 值3 :
语句体3 ;
break ;
....
default :
语句体n+1 ;
break ;
}
表达式的取值:
byte,short, int , char
jdk1.5以后可以取枚举
jdk1.7以后可以取字符串(String)
执行流程:
首先计算表达式的值,然后和case后边的值进行匹配,如果匹配成功,就执行对应的语句体,遇到break程序结束
如果没有找到对应的case 的值,就执行default对应的语句体
注意事项:
a: case后面只能是常量,不能是变量,而且case标签对应的值不能重复
b: break可以省略,但是不建议
         如果省略,会出现一个现象,case穿透
c: default一定要放在最后吗? 不一定,可以放在任意的位置,建议放在最后
d: default可以省略吗? 可以,但是不建议
e: switch语句的结束条件
(1): 遇到break程序结束
(2): 程序执行到末尾
if语句和switch语句的区别:
if语句的使用场景:
a: 针对结果是boolean类型
b: 针对一个范围的判断
c: 针对几个常量
switch语句额使用场景:
a:针对几个常量

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值