0. Introduction
此文是关于Java的一个简单梳理,为了重新梳理个人知识体系所作。
1. What
Java是一门面向对象的高级语言。在C++的基础上诞生,去掉了C++中一些影响健壮性的特性(比如:指针、内存的申请与释放等),语法相当于C++的简化版。
基于跨平台、面向对象、分布式、多线程等特性,Java成为了服务器端最主要的编程语言。
2. Why
为什么选择Java?
- 跨平台和面向对象,使得Java开发能节省移植成本和拓展成本。
- Java语言下限更高,初级程序员也能实现较高的生产力。
- 简单易学,企业更容易招到搬砖人。
3. How
Java SE有以下这些基础语法。
4. Practice
做几个简单的小练习吧。
- 【回文数】
1)打印5位数中的所有回文数,每行打印10个数,并统计总数;
2)输入任意整数,判断是否为回文数。
import java.util.Scanner;
public class Palindrome {
public static void main(String[] args) {
// 1)打印5位数中的所有回文数,每行打印10个数,并统计总数。
int count = 0;
for (int i = 10001; i <= 99999; i++){
if (i / 10000 == i % 10 && (i / 1000) % 10 == (i % 100) / 10){
System.out.print(i + "\t");
count++;
if (count % 10 == 0) System.out.println();
}
}
/* int count = 0;
//Dig_1表示个位数字,Dig_2表示十位数字,Dig_3表示百位数字
for (int Dig_1 = 1; Dig_1 < 10; Dig_1 ++)
for (int Dig_2 = 0; Dig_2 < 10; Dig_2 ++)
for (int Dig_3 = 0; Dig_3 < 10; Dig_3 ++){
System.out.print(Dig_1 + "" + Dig_2 + "" + Dig_3 + "" + Dig_2 + "" +Dig_1 + " ");
count ++;
if (count % 10 == 0)
System.out.println();
}*/
System.out.println("\n5位数中,一共有" + count + "个回文数。");
// 2)输入任意整数,判断是否为回文数。
Scanner sca = new Scanner(System.in);
System.out.print("请输入需要判断的任意整数:");
here: if (sca.hasNextInt()){
int n = sca.nextInt();
String str = Integer.toString(n); //整数转字符串
char[] arr = str.toCharArray(); //字符串存入数组
for (int i = 0; i <= arr.length / 2; i++){
if (arr[i] != arr[arr.length - i - 1]){
System.out.println("这个数不是回文数。");
break here;
}
}
System.out.println("这个数是回文数。");
}
else{
System.out.println("输入的不是整数!");
}
sca.close();
}
}
- 【排序】
题目:给出一个元素小于10且长度为10的乱序数组,并进行排序。
import java.util.Random;
public class ArrSort {
//给出一个元素小于10且长度为10的乱序数组,并进行排序。
public static int[] getRandomArr(int n){//获得随机数组
int[] arr = new int[n];
for (int i = 0; i < arr.length; i++) arr[i] = new Random().nextInt(arr.length);
return arr;
}
public static void print(int[] arr){//打印输出
for (int value : arr) System.out.print("\t" + value);
System.out.println();
}
public static void swap(int[] arr, int i, int j){//交换元素
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
public static void selectSort(int[] arr){//选择排序
for (int i = 0; i < arr.length - 1; i++){
for (int j = i + 1; j < arr.length; j++){
if (arr[i] > arr[j]){
swap(arr, i ,j);
}
}
}
print(arr);
}
public static void bubbleSort(int[] arr){//冒泡排序
for (int i = arr.length - 1; i > 0; i--){
for (int j = 0; j < i; j++){
if(arr[j] > arr[j + 1]){
swap(arr, j, j + 1);
}
}
}
print(arr);
}
public static void insertSort(int[] arr){//插入排序
for (int i = 1; i < arr.length; i++){
for (int j = i - 1; j >= 0; j--){
if (arr[j + 1] < arr[j]){
swap(arr, j, j + 1);
}
else break;
}
}
print(arr);
}
public static void main(String[] args) {
System.out.print("随机数组为:");
int[] arr = getRandomArr(10);
print(arr);
System.out.print("选择排序后:");
selectSort(arr);
System.out.print("冒泡排序后:");
bubbleSort(arr);
System.out.print("插入排序后:");
insertSort(arr);
}
//归并排序、快速排序、堆排序暂不涉及
}