Java基础知识

语句

顺序语句

判断语句

  • if…else:适用于条件在某一个范围内
    if嵌套使用
  • switch…case:适用于明确结果的情况
switch(表达式){
    case 常量1:
        语句体;
        break;
    case 常量2:
        语句体;
        break;
    ....
    default:
        语句;
        break;
}

case int [char] [byte] [short] [String] [enum]

  • case穿透情况
  • case语句后面必须要跟着break,否则会一直向下执行其他case中的语句,直至遇见break或者 } ,但是不会穿透default 然后结束.
  • default如果放在最后可以省略break,如果放在其他位置就不可以省略,因为default执行完语句会穿透下面case语句,直到遇见break与 } 结束.
  • 三元运算符
    是个运算,最后得到的是个常量
int result = a > b ? a : b;
  • 三元运算符与if语句不同
  • 格式不同
  • 范围不同
  • if里面可以输出语句,三元不行

循环语句

  • for循环用于循环次数明确的情况
for(int i = 0;i<arr.length;i++){
}
  • while
    先判断条件,满足才执行循环体
    一般死循环情况搭配break使用
    与for相反,一般用于不明确循环次数的情况
while(true){
  循环体;
  break;
}
  • do…while语句
    首先执行一次循环体然后再判断条件
int a = 0;
do{
  a++;
}while(a > 3)

for与while的区别

  • 场景不同:循环次数明确与不明确
  • 格式不同
  • 内存不同:for中变量为局部变量,随着for方法结束而消失,while相对for范围更大

关键字

  • continue:跳过满足当前条件的循环,还要执行下一次
  • break:跳出当前循环
  • return:很少单独使用,一般搭配方法使用,return 结果

方法

  • 两个明确:明确返回类型,明确参数个数与类型
public static void[返回值类型]  方法名(形参类型 形参名1,形参类型 形参名2){
    方法体;
    System.out.println("void一般搭配sout输出语句使用,或者对引用类型进行赋值操作");
    //如果需要返回值,就需要return关键字
    [return 满足返回值类型的变量];
} 
  • overload:重载

方法名相同,区分大小写
无关返回值类型个数,无关形参类型,个数
jvm在调用方法时,自动判断符合条件的方法

  • 方法之间时平级关系

方法只能互相调用,不能方法里面定义方法

数组

  • 一种容器:int[] arr = {5,7} 常用
//静态初始化与动态初始化无法同时使用
int[] arr = new int[3]  //动态初始化
int arr[]  = new int[]{3,6,8}  //静态初始化 
  • 创建过程类比其他引用类型的创建过程
    • jvm的内存分配

    方法区:字节码区:存储.class文件:划分区域存储各个方法; static:存储静态方法,比如main(); 常量池
    栈: main()首先被压入栈,按照顺序执行语句,需要调用方法就从字节码区拿取并压入栈;
    堆:new 的对象

    • 数组创建过程
    int[] arr = new int{2,5};
    

    栈中先为arr变量开辟空间,然后在堆中初始化一个int型数组,并进行赋值
    int默认0; double默认0.0; boolean默认false
    将堆中int数组的地址值返回给栈中的arr
    数组调用方法,形参会改变实参的值(传递的是地址值),基本类型与string则不会(传递的为数值)

  • 数组逆序
for(int i = 0;i <= arr.length/2;i++){
    int temp = arr[i];
    arr[i] = arr[arr.length-1-i];
    arr[arr.length-1-i] = temp;    
}
  • 冒泡排序
//每一轮都是找出左边未排序队列中最大值挪到右边已排序队列,一共要进行arr.length-1轮
//每一轮的都是左边未排序相邻两两进行对比
for(int i = arr.length-1;i != 0;i++){
    for(int j = 0;j < i;j++){
        if(arr[j] > arr[j +1]){
            int temp = arr[j];
            arr[j] = arr[j +1];
            arr[j + 1] = temp;
        }
    }
}

  • 现实生活中每一种事物都可以抽象成类
    • 面向对象基于面向过程
    • 万物皆对象
    • 化执行者为调用者:只要结果不要过程
      -定义
class Student{                                  //大驼峰命名法
	//成员变量
	private String name;                        //属性需要私有化
	private int age;                       
	//成员方法
	public void setName(String name){
		this.name = name;                       //属性赋值需要调用public的get与set方法
	}
	private void getName(){
		System.out.println("年龄为:" + name);
	}
	public void show(){                        //私有方法可以通过public方法来调用
		getName();
	}
}
  • 三大特征

    • 封装
    • 继承
    • 多态
  • 常见类

  • 随机数 Math.random() 产生[0.0 -- 1.0)
int random = (int)(Math.random() * 100 + 1)   //产生1到100之间的随机数   
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值