Java语言基础
Java语言概述
是一门计算机高级编程语言,早期称为oak(橡树),后期改名为java
Java之父 詹姆斯·高斯林
Java具有可移植性,安全可靠,性能较好,开发社区最完善,功能丰富
可以应用于桌面应用开发(各种税务管理软件,IDEA),服务器系统(应用后台),企业级应用开发(微服务,大型互联网应用),大数据开发(hadoop),移动应用开发(Android,医疗设备),游戏开发(MC)
java技术体系
SE 标准版 standard
EE 企业版 enterprise
ME 小型版 micro
hello world
编译代码:javac 文件名.java
运行: java 类名
1 |
|
基本要求:
文件名称的后缀必须是java结尾
文件名称必须与代码类名称一致
必须使用英文模式下的符号
IDEA开发工具
IDEA项目结构介绍
projects(项目、工程)
module(模块)
package(包)
class(类)
以上结构一个包一个,可以采用New新建
字体、快捷键以及其他操作
file-settings-自己琢磨
快捷键:
CTRL+D:复制当前行代码到下一行
CTRL+Y:删除所在行
CTRL+/:注释(单行)
CTRL+shift+/:注释
基础语法:注释
单行注释://
多行注释:/* */
文档注释:/** */
注释不影响程序的执行,编译后不存在注释内容
基础语法:字面量
整数:2
小数:12.2
字符:’a’
字符串:”hello world’”
布尔值:true,faulse
空值:null
基础语法:变量
变量定义格式:
数据类型 变量名称 = 初始值
操作和C++相似
注意事项:
变量要先声明再使用
声明后不能再储存其他类型
变量的有效范围是从定义开始到“}”截止,且在同一个范围内不能定义两个同名的变量
定义变量的时候可以没有初始值,但是使用的时候必须给初始值
1 |
|
可以用{}表示独立的代码块
基础语法:变量原理,ASCII,二进制
二进制:
按字节存储数据,即八位二进制为一个字节,称为一位
ASCII:
1 |
|
基础语法:数据类型
数据类型就是约束存储数据的形式
整数:byte,short,int(default),long
浮点数:float,double(default)
字符:char
布尔:Boolean
随便写一个小数默认double,但是再后面加一个F/f表示float
引用数据类型:
String 变量名=字符串
基础语法:关键字,标识符
关键字:
Java保留了一些单词,作为特殊功能,例如:public,class……
不用特意记住,会报错
标识符:
基本要求:由数字,字母,下划线和美元符号组成
强制要求:不能以数字开头,不能是关键字,区分大小写
类型转换:自动类型转换
- 类型范围小的变量可以赋值给类型范围大的变量
- 在表达式中,小范围类型的变量会自动转换成当前较大范围的类型在运算
- 最终类型由表达式中最高类型决定
- 强制类型转换:int a=20 byte b=(byte) a,由于a的值是在后八位存储的,故可以放入b
基本算数运算符
加减乘都相同
除,两个整数相除还是整数,因为最高类型为整数
取余,%
数据拆分
1 |
|
+符号做连接符
“+”与运算符一起时做连接符,结果还是一个字符串
自增自减运算符
++自增,变量自身的值加一
–自减,变量自身的值减一
只能应用于变量,不能应用于常数
放在变量前面,是先加减,在使用变量
放在变量后面,先使用变量,再进行加减
赋值运算符
+=,-=,*=,/=,%=
关系运算符
==,!=,>,>=,<,<=
对数据进行条件判断的符号,最终会返回一个比较多布尔结果
逻辑运算符
可以把多个条件的布尔结果放在一起运算,最终返回一个布尔结果
&逻辑与 &&短路与,前一个为F后一个不执行了
|或 ||短路或,前一个为T,后一个条件不执行了
!逻辑非
^ 逻辑异或
三元运算符
格式:条件表达式 ?值1:值2
首先计算条件表达式的值,T则返回1,否则2
1 |
|
优先级问题
在表达式中,哪个运算符先执行要看优先级
API介绍,案例介绍:键盘录入
键盘录入的步骤:
导包:import java.util.Scanner
写一行代码得到键盘扫描器对象:Scanner sc= new Scanner(System.in)
等待接收用户输入数据:int age=sc.nextInt();
String name=sc.next();
System,String在jdk中的java.lang包下,不需要导包
分支结构
if分支结构:
if(条件表达式){……}
else if(条件表达式){……}
else{……}
和C++一样
switch分支结构
switch(表达式){
case 值1:
……
break;
case 值2:
……
break;
case 值3:
……
break;
default:
……
}
- switch注意事项:
表达式类型只能是byte,short,int,char,不支持double,float,long
case给出的值不能重复
不能忘记break,否则会出现穿透
比较:
- if在功能上强于switch
- if适合做区间匹配,switch适合值匹配
- switch优雅且性能好
循环结构:
for循环和C++一样
while循环和C++一样
do_while循环:
先执行再判断循环条件
1 |
|
死循环:
for(;;)
while(true)
跳转控制语句:
break:跳出并结束当前所在循环的执行
continue:用于跳出当前循环的当次执行,进入下一次循环
random类,猜数字游戏
作用:用于在程序中获取随机数
步骤:
- 导包:import java.util.Random;
- 写一行代码代表得到的随机数对象:Random r=new Random();
- 调用随机数功能获取0-9的随机数:int number=r.nextInt(10);
nextInt(n),只能生成0-n-1,不包含n
1 |
|
1 |
|
数组
C++定义数组:int arr[k] int arr[]
Java静态初始化数组的格式:数据类型[] 变量名=(new double[]//完整) {元素1,元素2,……,元素n}
1 |
|
动态初始化数组:int[] arr=new int[3];只定义元素的类型和数组长度,之后再存入数据
1 |
|
默认值:
- 一般类型都是0或者0.0
- Boolean为false
- 其他接口类型以及string默认为null
静态和动态定义数组的方式是独立的不能混用。
数组的遍历:
1 |
|
数组元素求最大值:
1 |
|
随机排名:
1 |
|
冒泡排序:
思想:每次从数组中找出最大值放到数组的后面去
1 |
|
debug工具的使用
可以孔子代码从断点开始一行一行的执行,然后详细观看执行情况。
方法概述
方法是一种语法结构,它可以把一段代码封装成一个功能,以方便重复调用。
1 |
|
好处:
- 提高了代码的复用性
- 使代码逻辑更加清晰
方法定义、常见问题
1 |
|
不需要返回结果则选择void
常见问题:
- 方法编写的顺序无所谓
- 方法与方法之间是平级关系,不能嵌套定义
- 返回值为void则不能使用return,若有固定的返回值类型,则必须使用return返回值
- return语句下面不写代码,因为return后不会再执行
- 方法不调用就不执行,调用时必须严格匹配方法的参数情况
eg1:计算1-n的和返回
1 |
|
eg2:判断整数是奇数还是偶数
1 |
|
方法的内存调用
- 方法没有被调用的时候,在方法区中的字节码文件中存放
- 方法被调用的时候,需要进入到栈内存中运行
方法的参数传递机制
基本类型的参数传递:值传递
在传输实参给方法形参的时候,并不是串数实参变量的本身,二十传输实参变量中存储的值,这就是值传递
实参:如在方法内部定义的变量
形参:如在定义方法是,”()”中所声明的参数
引用类型的参数传递:值传递
基本类型参数传输存储的是数据值,不会修改原有的
引用类型参数传输存储的是地址值,会修改原有的
方法重载
定义:
同一个类中,出现多个方法名称相同,但是形参列表不用,这些方法就是重载方法
通过参数的不同进行差异化
识别技巧:
只要是同一个类中,方法名称相同,形参列表不同,它们就是重载的方法
形参列表的不同是指形参的个数,类型,顺序不同,不关心形参的名称
单独使用return关键字
return可以立即跳出并结束当前方法的执行,return关键字单独使用放在任何方法中
应用:除法中,遇到除数为0,直接return跳出当前方法的执行
break:是执行当前所在的循环
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!