当前位置:网站首页 > Java基础 > 正文

java基础1001java基础



JavaSE_第2章【Java基础语法】

学习目标

  • 会使用单行注释和多行注释
  • 能够辨识关键字
  • 理解标识符的含义
  • 理解Java中的基本数据类型分类
  • 能够理解常量的概念
  • 能够定义8种基本数据类型的变量
  • 能够分清楚两种输出语句的区别
  • 了解进制
  • 理解基本数据类型的自动类型转换
  • 理解基本数据类型的强制类型转换
  • 了解ASCII编码表和Unicode编码表
  • 理解int类型和char类型的运算原理
  • 理解运算符++ --的运算方式
  • 理解+符号在字符串中的作用
  • 掌握算术运算符
  • 掌握赋值运算符
  • 掌握比较运算符
  • 理解逻辑运算符
  • 掌握三元运算符的格式和计算结果
  • 了解位运算符

2.1 注释(Comment

  • 注释:就是对代码的解释和说明。其目的是让人们能够更加轻松地了解代码。为代码添加注释,是十分必须要的,它不影响程序的编译和运行。
  • Java中有、和
  • 单行注释以 开头,以结束,格式如下:
 
  • 多行注释以 开头,以结束,格式如下:
 
  • 文档注释以开头,以结束
 

文档注释可以被JDK提供的javadoc工具解析生成一套网页形式的说明文档,操作入下:

 

2.2 关键字(Keyword

  • 什么是关键字:被java语言赋予了特殊含义的字符串(单词)。
    例如HelloWorld案例中,出现的关键字有 、 、 、 等,这些单词已经被Java定义,具有明确的含义。
  • 关键字的特点:全部都是。
  • Java有哪些关键字:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1J4px4iX-99)(imgs/关键字表.png)]

关键字一共50个,其中const和goto是保留字。

true,false,null看起来像关键字,但从技术角度,它们是特殊的布尔值和空值。

建议:关键字比较多,不需要死记硬背,学到哪里记到哪里即可。

2.3 标识符( Identifier)

  • 标识符概念:即给类、变量、方法、包等命名的字符序列,称为标识符。
    简单的说,凡是程序员自己命名的部分都可以称为标识符。
  • 标识符的命名规则(必须遵守)
    (1)组成:英文大小写字母,数字,下划线_,美元符号$
    (2)数字不能开头
    (3)严格区分大小写
    (4)不能使用Java的关键字(包含保留字)和特殊值
  • 标识符的命名规范(遭受鄙视)
    (1)见名知意
    (2)类名、接口名等:每个单词的首字母都大写(大驼峰法则),形式:XxxYyyZzz,
    例如:HelloWorld,String,System等
    (3)变量、方法名等:从第二个单词开始首字母大写(小驼峰法则),其余字母小写,形式:xxxYyyZzz,
    例如:age,name,bookName,main
    (4)包名等:每一个单词都小写,单词之间使用点.分割,形式:xxx.yyy.zzz,
    例如:java.lang
    (5)常量名等:每一个单词都大写,单词之间使用下划线_分割,形式:XXX_YYY_ZZZ,
    例如:MAX_VALUE,PI

练习:以下合法的标识符是?

 

2.4 常量(Constant

  • 常量概念:在程序执行的过程中,其值不可以发生改变的量。
  • 常量的分类
  • 自定义常量:通过final关键字定义(后面在面向对象部分讲解)
  • 字面值、字面量(literal):

 
 

blockquote style="margin-top: 5px; margin-bottom: 5px; padding-left: 1em; margin-left: 0px; border-left: 3px solid rgb(238, 238, 238); opacity: 0.6;">

注意事项:

字符字面量,单引号里面有且仅有一个字符。

字符串字面量,使用双引号表示,可以包含多个字符。

空值字面量,是一种特殊值,不可以在输出语句中直接打印

/blockquote>

  • 换行输出语句:输出内容,完毕后进行换行,格式如下:

 
 

  • 直接输出语句:输出内容,完毕后不做任何处理,格式如下

 
 

示例代码:

 
 

blockquote style="margin-top: 5px; margin-bottom: 5px; padding-left: 1em; margin-left: 0px; border-left: 3px solid rgb(238, 238, 238); opacity: 0.6;">

注意事项:

换行输出语句,括号内可以什么都不写,只做换行处理

直接输出语句,括号内什么都不写的话,编译报错

只能输出一个数据,不能同时输出多个数据,如果要输出多个数据可以使用 + 把多个数据连接起来,变成为一个数据进行输出。

/blockquote>

Variable

  • 变量的概念:

在程序执行的过程中,其值可以发生改变的量

  • 变量的作用:
    用来存储数据,代表内存的一块存储区域,这块内存中的值是可以改变的
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fDhTPsA4-01)(imgs变量内存.png)]
  • 定义格式:

ol data-indent="1">

  • 声明变量,并同时赋值
    数据类型 变量名=初始化值;
  •  
     

    ol data-indent="1">

  • 先声明,再赋值
    数据类型 变量名;
    变量名=初始值;
  •  
     

     
     

    ol data-indent="1">

  • 同时声明多个变量
    数据类型 变量名1=初始值,变量名2=初始值;
  •  
     

    • 变量的使用注意事项

    ul data-indent="1">

  • 先声明后使用
    如果没有声明,会报“找不到符号”错误
  • 在使用之前必须初始化
    如果没有初始化,会报“未初始化”错误
  • 变量有作用域
    作用域为变量直接所属的{}范围内,如果超过作用域,也会报“找不到符号”错误
  • 在同一个作用域中不能重名
    同一个{},不能同时声明两个同名变量
  • 计算机世界中只有二进制。那么在计算机中存储和运算的所有数据都要转为二进制。包括数字、字符、图片、声音、视频等。

    1. 进制分类与表示方式
      (1)十进制:
      数字组成:0-9
      进位规则:逢十进一

     
     

    (2)二进制:


    数字组成:0-1


    进位规则:逢二进一

    表示方式:以0b或0B开头

     
     

    十进制的256,二进制:,为了缩短二进制的表示,又要贴近二进制,在程序中引入八进制和十六进制

    (3)八进制:很少使用


    数字组成:0-7


    进位规则:逢八进一

    表示方式:以0开头

     
     

    与二进制换算规则:每三位二进制是一位八进制值

    (4)十六进制


    数字组成:0-9,a-f或A-F


    进位规则:逢十六进一

    表示方式:以0x或0X开头

     
     

    与二进制换算规则:每四位二进制是一位十六进制值

    1. 进制的转换

    java基础1001java基础

  • 任意进制转十进制

    十进制的本质:123=1*10

    2+2*10

    1+3*10^0


    系数:就是每一个位上的数值。上例中的1,2,3


    基数:x进制的基数就是x。上例中的10


    权:对每一个位上的数据,从右到左,并且从0开始编号,对应的编号就是该数据的权。上例中的0,1,2


    任意进制转十进制:

    系数*基数^权次幂之和。

  • 十进制转任意进制:
    十进制数除以基数取余,直到商为0,余数反转。

    十进制转二进制:十进制整数6除以基数2,倒序取余数,结果为二进制数110


    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BLuIrpKR-02)(imgs/十进制转二进制.jpg)]

  • 快速转换方法:

  • 二进制转十进制:

    8421码:从右边开始依次是2的0次,2的1次,2的2次。。。。


    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mv394sbi-02)(imgs/二进制转十进制.jpg)]

  • 二进制数据转八进制数据

    从右边开始,3位二进制对应1位八进制


    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uAZIznxm-03)(imgs/2、二进制与八进制转换.png)]

  • 二进制数据转十六进制数据

    从右边开始,4位二进制对应1位十六进制


    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-derZETsT-03)(imgs/3、二进制与十六进制转换.png)]

  • 位(bit):是数据存储的最小单位,也就是一个二进制位。其中8 bit 就称为1个字节(Byte)。

  • 字节(Byte):是计算机信息技术用于计量存储容量的一种计量单位,1字节等于8bit。

  • 转换关系:

  • 8 bit = 1 Byte

  • 1024 Byte = 1 KB

  • 1024 KB = 1 MB

  • 1024 MB = 1 GB

  • 1024 GB = 1 TB

  • 整数存储

    计算机底层存储整数并不是把整数转换为二进制直接存储,而是以二进制的补码形式进行存储。要了解补码还要知道原码和反码:


    原码

    :把十进制转为二进制,然后最高位设置为符号位,1表示负数,0表示正数。


    正整数

    的原码、反码和补码都一样,称为三码合一。


    负整数

    的反码和补码表示为:


    反码

    :负整数的反码在其原码的基础上,符号位不变,其余位取反(0变1,1变0)


    补码

    :负整数的补码为其反码基础上+1

  •  

    一个字节可以存储的整数范围

     

     

  • 如何存储小数(了解)

  • 为什么float(4个字节)比long(8个字节)的存储范围大?

  • 为什么double(8个字节)比float(4个字节)精度范围大?

  • 为什么float和double不精确

  • ①符号位②指数位③尾数位

    详见《float型和double型数据的存储方式.docx》

  • 如何存储字符

    在计算机的内部都是二进制的0、1数据,如何让计算机可以直接识别人类文字的问题呢?就产生出了编码表的概念。

  • 编码表

    就是将人类的文字和一个十进制数进行对应起来组成一张表格。例如:

  • col>

    col>

    col>

    Java中字符常量的几种表示方式

    br>(1)‘一个字符’

    br> 例如:‘A’,‘0’,‘尚’

    br>(2)转义字符

    基本数据类型

    :包括 、、、。

    引用数据类型

    :包括 、、等。

    br>程序运行期间byte、short、char、boolean实际都是占用4个字节内存空间,

    br> 但在逻辑上:

    br> byte只有低8位有效空间。

    br> short只有低16位有效空间。

    br> 所以,可以直接把一个byte范围内的整数常量值直接赋给byte类型变量。short同理。byte b=10;

    br> 赋值给int,只要在int范围即可。

    br> 赋值给long,在int范围内的,可以加也可以不用加L,会自动升级为long,如果数字超过int范围,必须加L。

    char类型:使用单引号’’

    、、、、、、

    、、、、、等

    、、、、、

    、`

    、`

    分类


    运算符


    例子


    一元(单目)运算符


    ++、–、!


    i++、–i


    二元(双目)运算符


    +、-、*、/、%、>、<=等


    a+b、10>=9


    三元(三目)运算符


    表达式1?表达式2:表达式3


    age>=18?“成年”:“未成年”


    br>

    br>

    br>

    br>

    br>

    br>

    br>

    br>

    1. 加、减、乘、除、模
     
    
    1. “+”号的两种用法
    • 第一种:对于两边都是数值的话,就是加法的意思
    • 第二种:对于两边至少有一边是字符串得话,就是拼接的意思
     
    
    1. 自加自减运算

    理解: 运算,变量自己的值加1。反之, 运算,变量自己的值减少1,用法与 一致。

    • 单独使用
    • 变量在单独运算的时候,变量和变量,变量的是一样的;
    • 变量 :例如 。
    • 变量 :例如 。
     
    
    • 复合使用
    • 和或者和,和就产生了不同。
    • 变量 :变量先自身加1,然后再取值。
    • 变量 :变量先取值,然后再自身加1。
     
    
    • 小结:
    • ++在前,先自加,后使用;
    • ++在后,先使用,后自加。
    1. 练习
    • (1)获取一个四位数的个位,十位,百位,千位
     
    
    • (2)自增自减练习
      判断如下代码的运行结果
     
    
     
    
     
    
     
    

    2.10.3 赋值运算符

    注意:所有的赋值运算符的=左边一定是一个变量

    将符号进行相加操作,最后将结果

    将符号进行相减操作,最后将结果

    将符号进行相乘操作,最后将结果

    将符号进行相除操作,最后将结果

    将符号进行取余操作,最后将结果

    1. 基本赋值运算符课堂案例
     
    
    1. 扩展赋值运算符课堂案例
     
    

    扩展赋值运算符在将最后的结果赋值给左边的变量前,都做了一步强制类型转换

    1. 练习
      交换两个变量的值
      int m = 1;
      int n = 2;
     
    

    2.10.4 关系运算符/比较运算符

    比较运算符,是两个数据之间进行比较的运算,运算结果一定是boolean值或者 。

    • 课堂案例
     
    
    • 练习:判断如下程序的运行结果
     
    

    2.10.5 逻辑运算符

    逻辑运算符,是用来连接两个布尔类型结果的运算符(除外),运算结果一定是boolean值或者

    有则

    相同为,不同为

    非则,非则

    1. 课堂案例
     
    
    1. &&和&区别,||和|区别
      短路与,短路或运算符左边表达式结果可以确定最终结果,则运算符右边表达式不再进行运算,效率高
    • 和区别:
      和结果一样,有短路效果,左边为false,右边不执行;左边无论是什么,右边都会执行。
    • 和区别:
      和结果一样,有短路效果,左边为true,右边不执行;左边无论是什么,右边都会执行。
    1. 面试题1

    javase概括 javase内容_java

     
    
     
    
     
    
     
    
    1. 面试题2
     
    
     
    

    2.10.6 条件运算符

    • 条件运算符格式:
     
    
    • 条件运算符计算方式:
    • 条件判断的结果是true,条件运算符整体结果为结果1,赋值给变量。
    • 判断条件的结果是false,条件运算符整体结果为结果2,赋值给变量。
     
    

    练习

    2.10.7 位运算符(了解)

    • 位运算符的运算过程都是基于补码运算,但是看结果,我们得换成原码,再换成十进制看结果
    • 从二进制到十进制都是基于原码
    • byte,short,char在计算时按照int类型处理
    • 位运算直接对二进制进行位移操作实现数值运算,所以运算效率高

    如何区分&,|,^是逻辑运算符还是位运算符?

    如果操作数是boolean类型,就是逻辑运算符,如果操作数是整数,那么就位运算符。

    左移:<<

    运算规则:左移几位就相当于乘以2的几次方

    注意:当左移的位数n超过该数据类型的总位数时,相当于左移(n-总位数)位

    byte,short,char在计算时按照int类型处理

     
    

    javase概括 javase内容_jvm_02

     
    

    javase概括 javase内容_System_03

    右移:>>

    快速运算:类似于除以2的n次幂,如果不能整除,向下取整

     
    

    javase概括 javase内容_System_04

     
    

    javase概括 javase内容_jvm_05

    无符号右移:>>>

    运算规则:往右移动后,左边空出来的位直接补0,不看符号位

    正数:和右移一样

    负数:右边移出去几位,左边补几个0,结果变为正数

     
    

    javase概括 javase内容_java_06

     
    

    javase概括 javase内容_javase概括_07

    按位与:&

    运算规则:对应位都是1才为1

    1 & 1 结果为1

    1 & 0 结果为0

    0 & 1 结果为0

    0 & 0 结果为0

     
    

    javase概括 javase内容_jvm_08

     
    

    javase概括 javase内容_数据结构_09

    按位或:|

    运算规则:对应位只要有1即为1

    1 | 1 结果为1

    1 | 0 结果为1

    0 | 1 结果为1

    0 & 0 结果为0

     
    

    javase概括 javase内容_数据结构_10

     
    

    javase概括 javase内容_jvm_11

    按位异或:^

    运算规则:对应位一个为1一个为0,才为1

    1 ^ 1 结果为0

    0 ^ 1 结果为1

    0 ^ 0 结果为0

     
    

    javase概括 javase内容_数据结构_12

     
    

    javase概括 javase内容_java_13

    按位取反

    运算规则:

    ~0就是1

    ~1就是0

     
    

    javase概括 javase内容_jvm_14

     
    

    javase概括 javase内容_jvm_15

    2.10.8 运算符优先级

    javase概括 javase内容_jvm_16

    提示说明:

    (1)表达式不要太复杂

    (2)先算的使用()

    1. 大体的排序:算术 > 位 > 比较 > 逻辑 > 三元 > 赋值

    2.10.9 标点符号

    在Java中一共有12个标点符号。(后面再一一学习)

    javase概括 javase内容_java_17

    • 小括号()用于强制类型转换、表示优先运算表达式、方法参数列表
    • 大括号{}用于数组元素列表、类体、方法体、复合语句代码块边界符
    • 中括号[]用于数组
    • 分号;用于结束语句
    • 逗号,用于多个赋值表达式的分隔符和方法参数列表分隔符
    • 英文句号.用于成员访问和包目录结构分隔符
    • 英文省略号…用于可变参数
    • @用于注解
    • 双冒号::用于方法引用

    各个标点符号的使用在后续章节中一一揭晓。

  • 上一篇: java基础框架
  • 下一篇: java基础82
  • 版权声明


    相关文章:

  • java基础框架2025-04-15 20:42:02
  • java核心基础卷12025-04-15 20:42:02
  • java基础常见函数2025-04-15 20:42:02
  • 现代java基础2025-04-15 20:42:02
  • java基础用来2025-04-15 20:42:02
  • java基础822025-04-15 20:42:02
  • java基础02025-04-15 20:42:02
  • java b 树基础2025-04-15 20:42:02
  • java基础教学2442025-04-15 20:42:02
  • java常见基础题目2025-04-15 20:42:02