Java基础语法之常用类、对象和异常

本文介绍了Java中的几种排序算法,包括冒泡排序和选择排序,并详细解释了字符串比较、包装类使用、日期时间操作等内容。此外还提供了实用的工具类示例及异常处理技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 冒泡排序

public class Object{
	public static void main(String[] args){
		int[] nums = {1, 4, 3, 5, 2};
		for(int i = 0; i < nums.length; i++){
			for(int j = 0; j < nums.length - i - 1; j++){
				int num1 = nums[j];
				int num2 = nums[j+1];
				if( num1 > num2){
					nums[j] = num2;
					nums[j+1] = num1;
				}
			}
		}
	}
}

2. 选择排序

public class Object{
	public static void main(String[] args){
		int[] nums = {1, 4, 3, 5, 2};
		for(int i = 0; i < nums.length; i++){
			int maxIndex = 0;
			for(int j = 0; j < nums.length - i; j++){
				if( nums[j] > nums[maxIndex]){
					maxIndex = j;
				}
			}
			int num1 = nums[nums.length-i-1];
			int num2 = nums[maxIndex];

			nums[maxIndex] = num1;
			nums[nums.length-i-1] = num2;
		}
	}
}

3. 字符串的比较

// i = 正数, a > b
// i = 负数, a < b
// i = 0, a = b
int i = a.compareTo(b);
System.out.println(i);

4. 包装类

TODO 将基本数据类型转换为包装类型
// 自动装箱
// Integer i1 = Integer.valueOf(i);
Integer i1 = i;

// 自动拆箱
int i2 = i1.intValue();
int i2 = i1;

5. 日期类

import java.util.Date;

public class Date{
	public static void main(String[] args) throws Exception {
		// TODO 常见类和对象
		// Date: 日期类
		// 时间戳: 毫秒
		// System.out.println(System.currentTimeMillis());

		// Date: 日期类
		// Calendar: 日历类
		Date d = new Date();
		System.out.println(d);

		// Java格式化日期格式:
		// y(Y) -> 年 -> yyyy
		// m(M) -> MM: 月份, mm: 分钟
		// d(D) -> dd: 一个月中的日期,D:一年中的日期
		// h(H) -> h: 12进制,HH: 24进制
		// s(S) -> s: 秒,S: 毫秒

		// Date -> String
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
		String dateFormatString = sdf.format(d);
		System.out.println(dateFormatString);
	}
}

6. 日历类

import java.util.Calendar;
import java.util.Date;

public class Main {
    public static void main(String[] args) {
        // TODO 常见类和对象

        // 日历类
        Calendar instance = Calendar.getInstance();
        // System.out.println(instance);

        System.out.println(instance.get(Calendar.YEAR));
        System.out.println(instance.get(Calendar.MONTH));
        System.out.println(instance.get(Calendar.DATE));

        instance.setTime(new Date());
        instance.add(Calendar.YEAR, -1);
    }
}

7. 工具类

import java.util.Random;
import java.util.UUID;

public class Java_Object_Util {
    public static void main(String[] args) throws Exception {

    }
}

// 字符串工具类
// 1. 工具类不应该创建对象才能使用,也就意味着,可以直接使用类中的属性和方法,一般都声明为静态的。
// 2. 工具类对外提供的属性获方法都应该是公共的。
// 3. 为了使用者开发方便,应该尽量提供丰富的方法和属性。
class StringUtil{
    // 非空判断
    public static boolean isEmpty(String str){
        if(str == null || "".equals(str.trim())){
            return true;
        }
        return false;
    }
    // 生成随机字符串
    public static String makeString(){
        return UUID.randomUUID().toString();
    }

    public static String makeString(String from, int len){
        if(len < 1){
           return "";
        } else {
            char[] chars = from.toCharArray();
            StringBuilder str = new StringBuilder();
            for(int i = 0; i < len; i++) {
                Random random = new Random();
                int j = random.nextInt(chars.length);
                char c = chars[j];
                str.append(c);
            }
            return str.toString();
        }
    }
}

8. 比较

基本数据类型,双等号比较数值
引用数据类型,双等号比较变量的内存地址

9. 异常

public class Java_Exception {
    public static void main(String[] args){
        // TODO 错误
        // 1. 类型转换错误
        String s = "123";
        // Integer i = (Integer)s;
        Integer i = Integer.parseInt(s);

        // 2. 递归没有跳出的逻辑: StackOverflowError: Error 错误
        // 尽量避免
        test();

        // 3. 访问一个为空对象的成员方法时,出现了错误: java.lang.NullPointerException(异常)
        //      Java中异常分为2大类:
        //      3.1 可以通过代码恢复正常逻辑执行的异常,称之为运行期异常: RuntimeException
        //      3.2 不可以通过代码恢复正常逻辑执行的异常,称之为编译期异常: Exception
        User user = null;
        System.out.println(user.toString());
    }

    public static void test(){
        test();
    }
}

class User{

}

try代码块中,如果出现异常,那么JVM会将异常进行封装,形成一个具体的异常类,然后将这个异常抛出。

所有的异常对象都可以被抛出。

参考资料:7天搞定Java基础,Java零基础极速入门

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值