Java最基础的知识-变量-循环-数组-方法

Java开发环境

  1. 编译运行过程:

  • 编译期: java源文件,经过编译,生成.class字节码文件

  • 运行期: JVM加载.class并运行.class(0和1)

  • 特点: 跨平台, 一次编译到处运行

2.名词解释:

  • JVM: Java虚拟机

  • 加载.class并运行.class

  • JRE: Java运行环境

  • 除了包含JVM以外还包含了运行Java程序必须的环境

  • JRE = JVM + Java系统类库(小零件)

  • JDK:Java开发环境

  • 除了包含JRE以外还包含了运行Java程序所必须的命令工具

  • JDK = JRE + Java编译,运行等命令工具

Java语言基础


  1. 变量

  • 使用前需要声明并初始化

  • 命名: 只能包含字母 数字 _ 和$符 并且不能以数字开头 \ 严格区分大小写

  1. 八种基本数据类型:

byte short int long float double boolean char

整数型 长整数 浮点型 布尔型 字符型

4字节 8字节 8字节 1字节 2字节

21多亿 900万万亿 很大

  • int: 两个整数相除,结果为整数,小数会无条件舍去 | 运算时如果超出范围则会溢出

  • long 和 float 在表示直接量时 需要在后面加上 L 或 F

  • double 运算时可能会发生舍入误差, 不适用于精确场合 精确运算时需要用BigDecimal

  • char 采用Unicode编码 a--97 A--65 0--48; ''字符型直接量必须放在单引号中,只能有一个

特殊符号需要通过\来转义

  1. 类型间的转换:

  • 数据类型从大到小依次为: byte<short<int<long<float<double<char

  • 两种方式:

  • 自动/隐式类型转换: 从小类型到大类型

  • 强制类型转换: 从大类型到小类型

  • 语法: (要转换成为的数据类型) 变量

  • 注意: 强转有可能发生溢出或丢失精度

  • 两点原则:

  • 整数直接量可以直接赋值给byte short char , 但是不能超出范围

  • byte short char 型数据参与运算时, 系统一律将其转换为int再运算

system.out.printle('a'+0) // 48
bytea=5, b=6;
bytec= (byte)(a+b)
  1. 运算符:

  • 算术: + - * / % ++ --

  • %: 取余/取模, 余数为0即为整除

  • ++/--:自增自减

  • 单独使用时,在前在后都一样

inta=5; a++;

  • 被使用时,在前在后不一样

  • a++ 的值为a------------(a-- 的值为a ) 先用后加

  • ++a的值为a+1---------(--a 的值为a-1) 先加后用

inta=5,b=5;
intc=a++;    intd=++b;
System.out.println(a) // 6
System.out.println(b) //6
System.out.println(c) //5
System.out.println(d) //6

  • 逻辑运算符:

  • &&: 短路与(并且), 一假则假. 两真则真

  • ||: 短路或(或者), 一真则真,两假才假

  • !: 逻辑非(取反)

  • 三元运算符: boolean? 值1 : 值2 ;

  • 执行过程: 若boolean为真,则输出 值1, 若boolean 为假, 则输出 值2

  1. 分支结构

  • if结构:

if(boolean){  语句块  }
执行过程:若boolean为真则执行语句块,  为假则直接结束
  • if...else结构

if(boolean){
    语句块
}else{ 语句块}
执行过程:
判断boolean的值:若为true,则执行语句块1(整个结束)   若为false,则执行语句块2(整个结束)
  • if...else if ...else 结构

1)语法:
if(boolean-1){
语句块1
}elseif(boolean-2){
语句块2
}elseif(boolean-3){
语句块3
}else{
语句块4}
2)执行过程:
判断boolean-1,若为true则执行语句块1(结束),若为false则
再判断boolean-2,若为true则执行语句块2(结束),若为false则
再判断boolean-3,若为true则执行语句块3(结束),若为false则执行语句块4(结束)
  • switch...case结构:多条路

优点:效率高 结构清晰

缺点: 只能对整数判断

break: 跳出switch

switch(command){
    case 1: 语句体;
    break;
    ...
    dufault:语句体;
}
其中变量command类型可以为: byte  short int char String  枚举
  1. 循环:

反复多次执行一段相同或者相似的代码

  • 循环三要素:

  • 循环变量的初始化

  • 循环的条件(以循环变量为基础)

  • 循环变量的改变

  • 循环结构:

  • while结构: 先判断后执行,有可能一次都不执行

while (boolean){语句块/循环体}
  • do...while结构: 先执行后判断,至少执行一次

do{
    语句块
}while(boolean)

执行过程:

先执行语句块,再判断boolean的值,若为true则

再执行语句块,再判断boolean的值,若为true则

再执行语句块,再判断boolean的值,若为true则

再执行语句块,如此反复,直到boolean的值为false时,do...while结束

  • for结构: 应用率最高,适合与次数相关的

for(要素1;要素2;要素3){

语句体/循环体

}

  • 三种循环结构如何选择:

  • 先看循环是否与次数有关

  • 若有关-------------直接上for

  • 若无关, 再看第1要素与第3要素的代码是否相同:

若相同--------------------------------直接上do...while

若不同--------------------------------直接上while

  • break 结束当前循环

  • continue: 跳过循环体中剩余语句而进入下一次循环

  • 变量的作用域/范围: 从变量的声明开始, 到包含它最近的大括号结束

  • 变量的重名问题: 作用域重叠时,变量不同重名

  1. 嵌套循环:

  • 循环中套循环,常常多行多列时使用,外层控制行,内层控制列

  • 执行规则:外层循环走一次,内层循环走所有次

  • 建议:嵌套层数越少越好,能用一层就不用两层,能用两层就不用三层

  • break默认只能跳出当前一层循环

  1. 数组:

  • ArrayIndexOutOfBoundsException:数组下标越界异常

数组下标一定在0到(数组长度-1)之间,若超出范围,在运行时会发生数组下标越界异常

  • 引用数据类型、相同数据类型元素的集合

int[] arr=newint[3]; //0,0,0
int[] arr= {2,3,7};
int[] arr=newint[]{2,3,7};
arr[0] =100;
System.out.println(arr[arr.length-1]);
for(inti=0;i<arr.length;i++){
arr[i] = (int)(Math.random()*100);
System.out.println(arr[i]);
}
Arrays.sort(arr); //升序
  • 数组复制

  • System.arraycopy(a,1,b,2.4);

int [] a= {10,20,30,40,50};
int [] b=newint[6];
//a:原数组
//1:原数组起始索引
//b:目标数组
//2:目标数组的起始索引
//4:要复制的元素个数
System.arraycopy(a,1,b,2.4);//灵活性好
  • int[]b =Arrays.copyOf(a,6);

int[] a= {10,20,30,40,50};
//a:源数组
//b:目标数组
//6:目标数组的长度
// --若目标数组长度>源数组长度,则末尾补默认值
// --若目标数组长度<源数组长度,则将末尾的截掉
int[] b=Arrays.copyOf(a,4); //灵活性差
  • a=Arrays.copyOf(a,a.length+1); //数组的扩容

  1. 方法:

  • 作用: 用于封装一段特定的业务逻辑功能

  • 建议:尽可能独立, 一个方法只干一件事

  • 方法可以被反复多次利用

  • 好处:可以减少代码重复,有利于代码维护

  • 何时用:只要是一个独立的业务功能,就得封装一个方法中

修饰词  返回值类型  方法名(参数列表){
    方法体------具体的业务逻辑功能实现
}
  • 方法的调用:

  • 无返回值: 方法名(有参传参);

  • 有返回值: 数据类型 变量 = 方法名(有参传参);

  • return:

  • return值: 1)结束方法的执行 2) 返回结果给调用方---------------用在有返回值的方法中

  • return: 1)结束方法的执行--------------------------------------用在无返回值的方法中

补充知识


  1. 小驼峰命名法:

  • 首个单词字母小写,其余单词首字母大写 用于方法名 和 变量名

  1. 大驼峰命名法:

  • 所有单词首字母都大写 用于类名

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值