首页 / JAVA / 01_Java 基础_基本语法
01_Java 基础_基本语法
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了01_Java 基础_基本语法,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含6046字,纯文字阅读大概需要9分钟。
内容图文
![01_Java 基础_基本语法](/upload/InfoBanner/zyjiaocheng/622/03e6882ab88941cf81da02438836792e.jpg)
前言
Java 可以做什么
- 制作网站
- 做 Android
- 做游戏
- 做软件
Java 语言特性
-
简单易用
-
面向对象
-
安全性高
-
多线程
-
跨平台
第一个 Java 程序
HelloWorld.java
publuc class Hello{
? public static void main(String[] args){
? System.out.print("Hello World!");
? }
}
javac HelloWorld.java
java Hello
注意事项:
- 一个 Java 文件只能有一个 public 类,且与文件名同名
- 编译的字节码文件与类同名
![01_Java 基础_基本语法 - 文章图片](/upload/getfiles/0001/2021/5/1/20210501014709057.jpg)
进制
常见进制
- 十进制(手指,默认)
- 二进制(高低电平,0b开头)
- 八进制(三位二进制,421,0开头)
- 十六进制(四位二进制,8421,0x开头)
进制转换
二进制转十进制
![01_Java 基础_基本语法 - 文章图片](/upload/getfiles/0001/2021/5/1/20210501014709883.jpg)
十进制转二进制反过来就行
二进制转八进制与十六进制,划三个或四个为一组,从低位开始,高位补零
-
那小数怎么计算呢
经典的十进制转二进制方法是:除二取余,逆序排列
那么小数就是:乘二取整,顺序排列
计算机数据存储
- Bit 位:一个二进制数字
- Byte:字节,八个 Bit 位
- KB、MB、GB、TB,B 指的是 Byte,倍数为1024(2的十次方)
- 硬盘,厂商设定倍数为1000,所以买到的硬盘实际容量会小一点
- 宽带,运营商使用 Bit 位作为速率单位,所以宽带速度转换成通常意义上的网速要除以八
原反补码
人脑可以知道第一位是符号位,可以通过符号位对真值的绝对值进行运算,但对于计算机来说,识别符号位无疑是增加了电路设计的复杂性,于是人们想出了让符号位也参与运算的方法。即减去一个数,等于加上它的负数,0代表正数,1代表负数,第一位是符号位。
- 正数的原反补码都是它本身
- 负数原码是本身;反码:符号位不变,其余各位取反;补码:符号位不变,其余各位取反加1
- 补码符号位不变,其余各位取反加1,得到原码(补码的补码是原码)
所有数字在计算机里面都以补码形式存在
语法规则
字面量和常量
程序中固定不变的值,定义了就不能再修改
-
常量类型:整数、小数、布尔型、字符、字符串、null
-
单引号是字符,双引号是字符串
变量
值可以改变的量,可以用于指代某一事物
数据类型 变量名 = 初始化值;
![01_Java 基础_基本语法 - 文章图片](/upload/getfiles/0001/2021/5/1/20210501014710257.jpg)
变量的作用域
- 只在创建变量的大括号内生效
- 方法中定义的变量只在方法内生效
- for 循环中的变量只在循环内生效
特点
- 占据着内存中的某一块存储区域
- 该区域有自己的名称(变量名)和类型(数据类型)
- 可以被重复使用
- 该区域的数据可以在同一 类型范围内不断变化
标识符
自己取的名字,有规则
- 以字母、数字、下划线、$ 符号组成,但不能以数字开头(此处的字母可以是中文等)
- 区分大小写
- 不能使用 Java 中的关键字和保留字
- 不能使用 Java 中内置的类名作为自己的类名
关键字和保留字
![01_Java 基础_基本语法 - 文章图片](/upload/getfiles/0001/2021/5/1/20210501014710794.jpg)
表达式
- 数字、运算符、数字分组符号、常量、变量等能求得结果的有意义排列的式子
- 运算符连接的常量、变量可称为表达式
注释
写给程序员看的,编译时忽略
- 单行注释
- 多行注释
- 文档注释
数据类型
Java 是强类型语言,对于每一种数据,都定义了明确的数据类型,不同的数据类型在内存中分配不同大小的空间。
基本数据类型
- 数值型
- 整数
- byte
- short
- int
- long
- 小数
- float
- double
- 整数
- 字符型
- char(可用 ASCII 码表序号表示,十六位无符号整数)
- 布尔型
- boolean(Java 中不能用0和非0表示真假)
![01_Java 基础_基本语法 - 文章图片](/upload/getfiles/0001/2021/5/1/20210501014711594.jpg)
Java 整型常量默认是 int,浮点型常量默认是 double
-
一个有趣的问题是,试试
System.out.print(.1+.2);
输出的是什么我们知道,计算机中所有数字都是用二进制表示的,在我们熟悉的十进制运算中,有时会出现无限小数的情况(1/3、1/6、1/7、1/9),二进制中也有,由于二进制唯一的因子是二,所以只能准确地表示二为分母地小数。试试把 0.1(1/5) 转换成二进制
发现部分像 0.1 这样的小数在转换成二进制时出现了无限循环的情况,于是就有了 IEEE 754 标准来解决这个问题,简单来说就是取一个近似值,近似值相加,得到的当然还是一个近似值。
所以,在 Java 中,千万不要用 float 或 double 来进行高精度运算,尤其是金额运算,容易算着算着钱就变少了,在 Java 中提供了 BigDecimal 来进行精度运算。
有个网站就叫 0.30000000000000004.com 专门就是解释这个问题的
类型转换:
- 小到大完成自动类型转换
- 大到小使用强制类型转换(可能造成精度降低或溢出)
- boolean 类型不属于数值类型,不参与类型转换
- 当一个表达式中含有多个基本数据类型,运算时类型自动提升,所有 byte、short、char、自动提升到 int,整个表达式自动提升到最高
引用数据类型
- 类
- 接口
- 数组
运算符
-
算术运算
- 字符串相加代表拼接
- 两个整数相除,结果小数部分忽略
- 模运算符号看左边
- 自增(++)、自减(--)
- 出现在变量前后
- 前后的区别
- 不参与运算,没有区别
- 前面参与运算,后面不参与运算
-
赋值运算
- =
- +=、-=、*=、/=
- 在编译时,自动完成强制类型转换
-
比较运算
- 比较两个变量或常量,结果是 boolean 类型
-
逻辑运算
- 连接两个 boolean 类型,结果是 boolean 类型
- 逻辑与(&)
- 逻辑或(|)
- 逻辑非(!)
- 异或(^)相同 false 不同 true
- 短路与(&&)
- 短路或(||)
-
位运算(4种,在二进制补码上运算)
- 位与
- 位或
- 位异或
- 位取反
- << : 左移运算符,num << 1,相当于num乘以2
- >> : 右移运算符,num >> 1,相当于num除以2
- >>> : 无符号右移,忽略符号位,空位都以0补齐
语句结构
顺序结构
if
if...else
if...else if... slse
switch
- case 穿透问题,break 不写。
- default 后面没有 break
- jdk 1.5 switch 值只支持整数类型(byte、short、int、char)、枚举类型
- jdk 1.7 开始,switch 支持 String
循环结构
-
while
-
do-while,判断为真,继续执行
-
for,简化了 while 循环。循环变量为局部变量
-
控制循环结构
- break,跳出一层循环,执行循环之后的语句
- continue,跳出本次循环,继续执行循环语句
- return,结束方法
-
死循环
-
控制外层循环,使用标签给循环起个别名
outer: for(int i = 0; i < 5; i++){ inner: for(int j = 0; j < 5; j++){ if(i == 3){ break outer; } System.out.print("*"); } System.out.println(); }
方法与数组
方法
方法就是一个小功能,把代码存起来,可以重复使用。
注意点:
- 方法必须声明在类当中
- 方法定义在其他方法之外,不可嵌套定义
- 方法定义不分前后顺序
- 静态方法不能调用非静态方法
- 方法先定义,再执行
方法的完整形式:
[修饰符] 返回值类型 方法名(形参){
? 方法体;
? [return 返回值]
}
方法的重载
统一的方式处理不同类型的数据,是一个类中多态性的一种表现。
-
存在于父类与子类、同类中
-
方法名称必须相同
-
参数列表必须不同(类型与个数)
-
修饰符可以相同可以不同
-
可以抛出不同异常
-
返回值类型可以相同可以不同
-
仅仅返回值不同不足以成为重载
方法的重写
-
存在与父类与子类中
-
参数列表完全相同
-
返回值类型必须相同
-
重写方法不能缩小访问权限
-
重写方法不能抛出更多的异常
数组
相同的数据类型有序地组成在一起。
定义形式:
数据类型[] 数组名称 = new 要存放的数据类型[]{指定类型的数据内容}
- 脚标从 0 开始
- 脚标不存在发生 ArrayIndexOutOfBoundsException 数组越界异常
数组初始化
静态初始化
- 在创建数组时,就已经确定有多少个元素,并且把元素放到了数组中。
- 等号右边的 new 数据类型[] 可以省略,编译时自动补齐
动态初始化
- 一开始不知道要存什么数据,先指定一个空间大小
数组遍历
- 使用数组的长度(数组名.length)for 循环遍历
- 使用 Java 提供的 Arrays.toString(数组名) 打印数组
二维数组
数组中的元素又是数组。
数据类型[] [] 数组名称 = new 要存放的数据类型[] []{指定类型的数据内容}
数组快速遍历(语法糖)
for(数组类型 遍历出来的元素 : 数组名称)
可变参数(语法糖)
定义:方法名(参数类型... 参数名);
使用:方法名(参数1, 参数2, 参数3)
编译时自动封装成数组
内容总结
以上是互联网集市为您收集整理的01_Java 基础_基本语法全部内容,希望文章能够帮你解决01_Java 基础_基本语法所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。