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会将异常进行封装,形成一个具体的异常类,然后将这个异常抛出。
所有的异常对象都可以被抛出。