JAVA基础知识

一.关键字

  1. 关键字:被java 语言赋予特定含义的单词
  2. 关键字的特点:组成关键字的单词全部小写
  3. 常见关键字:
    这里写图片描述
    这里写图片描述

二.标识符

  1. 标识符:给类,接口,方法,变量等起名字时使用的字符序列
  2. 标识符组成规则:
    • 数字字符
    • 英文大小写字母
    • $和_
  3. 注意:
    • 不能以数字开头
    • 不能是关键字
    • 区分大小写

三.注释

  1. 注释:用于解释说明的文字
  2. 注释的格式:
    • 单行注释://注释内容
    • 多行注释:/*注释内容*/
    • 文档注释:/**注释内容*/

四.常量,进制和进制转换

常量

  1. 常量:在程序执行的过程中其值不可以发生改变
  2. 常量的分类:
    • 字面值常量:
      • 整数常量:整数或者负整数
        例如:10,-1
      • 小数常量:小数
      • 字符常量:使用单引号括起来的内容:只能包含单个字母或者数字
        例如:’a’
      • 布尔型常量:只有true或者 false
      • 空常量:null
    • 自定义常量

进制

  1. 进制:就是进位制,是人们规定的一种进位方法。 对于任何一种进制–X进制,就表示某一位置上的数运算时是逢X进一位。二进制就是逢二进一,八进制是逢八进一,十进制是逢十进一,十六进制是逢十六进一。
  2. java针对整数常量有四种进制: 二进制,八进制,十进制和十六进制
  3. 不同进制组成规则:
    二进制: 由0,1组成;以0b开头
    八进制:由0~7组成;以0开头
    十进制:由0~9组成;整数默认是十进制
    十六进制:由0~9,a~f组成;以0x开头

进制转换

  1. 十进制到x进制的转换:十进制数除以x,求余数,直到商为0,最后将得到余数的顺序进行反转
    例如:十进制52转换为二进制
    这里写图片描述
    所以52的二进制为:110100

  2. 任意进制到十进制的转换:
    系数:就是每一位上的数据
    基数:x进制,基数就是x
    权:在右边,从0开始编号,对应位上的编号即为该位的权
    结果:把系数*基数的权次幂相加即可
    例如:二进制110100转换为十进制
    这里写图片描述

  3. **8421码快速转换法:**8421码是中国大陆的叫法,8421码是BCD代码中最常用的一种。在这种编码方式中每一位二进制中代码的1都是代表一个固定数值
    这里写图片描述
    用法:二进制—>十进制的快速转换

    110100:32+16+4=52

      十进制—>二进制的快速转换

    52=32+16+4

  4. 二进制转换到八进制,十六进制:

    • 十进制作为桥梁
    • 二进制—>(8421码)十进制—>八进制/十六进制
    • 二进制—>八进制:三位为一组,求对应十进制,组合在一起得到其八进制
    • 二进制—>十六进制:四位为一组,求对应十进制,组合在一起得到其八进制

五.变量

  1. 变量:在程序执行的过程中,在某个范围内其值可以发生改变的量
  2. 格式:数据类型 变量名 = 初始化值;
  3. 定义变量的注意事项:
    • 定义变量必须在某一个作用域内去定义 {里面去定义}
    • 变量名只能被定义一次,多次编译不通过
    • 同一行可以定义多个变量,但是不建议这样去做.书写不规范
    • 定义变量,并且没有初始化值,那么一定要在使用(输出这个变量)之前,给它进行赋值,否则报错!

六.数据类型和类型转换

  1. 数据类型:
    Java语言是强类型语言,对于每一种数据都定义了明确的具体数据类型,在内存总分配了不同大小的内存空间
    这里写图片描述
    这里写图片描述
    由于整数是默认int类型,超出int类型的范围用long类型去接收,所以必须数据的末尾加上L或者l(建议使用大写L)
    浮点类型中的float,浮点类型默认是double,所以,一般情况建议在默认去写上大写F

    double d = 12.345 ;
    float f = d ;
    错误:必须强制类型转换才能不报错,因为浮点类型默认double,用小范围数据类型去接收大范围的数据类型是不可以的!
    float f1 = (float)12.345 ;
    float f2 = 12.345f;
    f1其实就是将一个double类型的数据强制转换为float类型
    f2其实本身就定义的是一个float类型

  2. 类型转换:
    byte,short,char—>int—>long—>float—>double
    前三者之间相互不转换,但是一旦参与运算,前三者首先会转换int类型

  • byte b1=3,b2=4,b;
    b=b1+b2;
    b=3+4;
    哪句是编译失败的呢?为什么?

    b=b1+b2是错误的;
    byte,short,char相互不转换,但是一旦参与运算,前三者首先会转换 int类型
    int是4个字节,bite是一个字节去接收肯定报错,应强制类型转换
    b=(byte)(b1+b2)
    变量相加:先看数据类型,看是否有默认转换,若有则必须强制类型转换
    常量相加:先相加,然后得到结果看其是否在byte(-128-127之内),在的话 就不会报错

  • byte b = 130;有没有问题?若有问题,如何改正?改正后输出多少?
    byte类型范围为(-128~127)超出范围,有问题,应强制类型转换
    byte b=(byte)130;
    130:原码->00000000 00000000 00000000 10000010
      反码->00000000 00000000 00000000 10000010
      补码->00000000 00000000 00000000 10000010
    130强制转化为byte类型,截取3个字节:10000010(补码)
    10000010(最高位为1,为负)
    符号位  数值位
     1   0000010(补码)
      1    0000001(反码)
      1    1111110(原码)
      -    126
    因此,最后输出-126


七.运算符

A:算术运算符

  1. 正号:+3
  2. 负号:-3
  3. 加(+),减(-),乘(*),除(/)除:取整
  4. 求余(%):3%4=3
  5. 字符串拼接(+):

    public class Test {
      public static void main(String[] args) {
        System.out.println("hello"+2);
      }
    }

    输出结果:hello2
  6. 自增(++):
    ++单独使用:无论前缀++(++7)还是后缀++(7++),都增1
    ++参与运算:前缀++,先自增1,在运算
          后缀++,先运算,在自增1             
  7. 自减(–):
    --单独使用:无论前缀–(–7)还是后缀–(7–),都减1
    --参与运算:前缀–,先自减1,在运算
         后缀–,先运算,在自减1 
         

B.赋值运算符


  1. 基本赋值运算符(=):把等号右边的值赋值给等号左边的变量
  2. 扩展的赋值运算符(+=,-=,*=,/=,%=):把符号的左边的值和右边的值相加,赋值给左边

short s = 1 ; s = s+ 1;
short s = 1 ; s += 1 ;
上面两个代码有没有问题,如果有,哪里有问题.

第一个有问题:隐含了一个默认类型转换类型不匹配
第二个没有问题:扩展的赋值运算符隐藏了强制类型转换

C.比较运算符

  1. 比较运算符(>,>=,<,<=,!= ,==)
  2. 无论表达式是否复杂的还是简单的,最终结果都是boolean类型
  3. 4<x<6:java语言中不能这样写(4<x && x>6)

D.逻辑运算符

  1. 逻辑运算符:可以连接某个值或者某一个表达式
  2. 基本的逻辑运算符:
    • 逻辑与(&):有false则false
    • 逻辑或(|):有true则true
    • 逻辑异或(^):相同false,不同true
    • 逻辑非(!):非false则true,非true则false
  3. 扩展的逻辑运算符:

    • 逻辑双与(&&)

      逻辑与和逻辑双与的区别?
      共同点:两个表达的效果是一样的(有false则false)
      短路效果:
      逻辑双与具有短路效果:左边的表达式如果是false,则右边不执行

    • 逻辑双或(||)

      逻辑或和逻辑双或的区别?
      共同点:两个表达的效果是一样的
      短路效果
      具有短路效果,左边如果是true,右边不执行.

E.位运算符

这里写图片描述

  1. ^:特点:一个数据被另一个数据位异或两次,其值本身不变

F.三目运算符

  1. 格式:(表达式) ? 表达式1 : 表达式2;
  2. 执行流程:先判断表达式是否成立,如果成立,把表达式1作为结果;如果不成立,把表达式2作为结果
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值