Java小结

Java基础

Java的运行机制

  1. 编写Java程序
  2. 编译源文件,生成JVM可识别的十六进制字节码文件
  3. 计算机读取字节码文件,运行程序

Java程序是运行在JVM中的,并不是在计算机底层运行

JDK和JRE

JDK:Java开发工具包

JRE:Java的运行环境

**JDK包含JRE **

逻辑运算符

逻辑运算符包含:与&,或|,非!,短路与&&,短路或||

&&与||只要在判断左边不满足条件之后就立刻给出结果,不去判断右边的真假

数组

数组中涉及到若干的排序问题。有几种算法如下

  • 冒泡算法
for (int i = 0; i <array.length-1 ; i++) {
            for (int j = 0; j <array.length-i-1; j++) {
              if (array[j]>array[j+1]){
                  tend=array[j];
                  array[j]=array[j+1];
                  array[j+1]=tend;
              }
            }
        }
  • 快速排序
public static void quickSort(int[] arr,int left, int right){
    int i,j,x,temp;
    if(left<right)
    {
        i=left;
        j=right;
        x=arr[(left+right)/2];  //以中间元素为轴
        while(true)
        {
            while(i<=right&&arr[i]<x)i++;
            while(j>=0&&arr[j]>x)j--;

            if(i>=j) //相遇则跳出
                break;
            else
            {
                temp=arr[i];arr[i]=arr[j];arr[j]=temp;  //交换
            }
        }
        quickSort(arr,left,i-1); //对左半部分进行快排
        quickSort(arr,j+1,right);  //对右半部分进行快排
    }
}

Arrays工具类

方法名用法
Arrays.sort(int[] array)升序排序
Arrays.toString(int[] array)输出数组
Arrays.equals(int[] a,int[] b)比较两个数组是否相等,数组长度以及数组中各个元素是否相等
Arrays.binarySearch(int[] array,b)binarySearch只能针对升序排列的数组,查找指定元素
Java多线程是指在一个Java程序中同时执行多个线程,每个线程都是独立的执行流。Java中创建线程的方式有三种:继承Thread类、实现Runnable接口和实现Callable接口。每种方式都有其优缺点。 1. 继承Thread类创建线程类: ```java class MyThread extends Thread { public void run() { // 线程执行的代码 } } // 创建线程对象并启动线程 MyThread thread = new MyThread(); thread.start(); ``` 优点:简单易用,可以直接重写Thread类的run()方法。 缺点:由于Java不支持多继承,继承了Thread类就无法再继承其他类。 2. 实现Runnable接口创建线程类: ```java class MyRunnable implements Runnable { public void run() { // 线程执行的代码 } } // 创建线程对象并启动线程 Thread thread = new Thread(new MyRunnable()); thread.start(); ``` 优点:避免了单继承的限制,可以继续继承其他类或实现其他接口。 缺点:需要额外创建Thread对象,并将Runnable对象作为参数传递给Thread对象。 3. 实现Callable接口创建线程类: ```java class MyCallable implements Callable<Integer> { public Integer call() throws Exception { // 线程执行的代码 return 0; } } // 创建线程池对象 ExecutorService executor = Executors.newFixedThreadPool(1); // 提交Callable任务并获取Future对象 Future<Integer> future = executor.submit(new MyCallable()); // 获取线程执行结果 int result = future.get(); ``` 优点:可以获取线程执行的结果,并且可以抛出异常。 缺点:相对于前两种方式,使用Callable需要更多的代码。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值