本文介绍了Java基础编程知识,包括:1)HelloWorld程序编写与运行方法;2)基本语法如关键字、数据类型、运算符等;3)流程控制如循环和随机数应用;4)数组的定义、初始化和常见操作;5)方法的定义、调用、重载和返回值使用;6)实践案例包括验证码生成、加密解密、抽奖系统和双色球模拟等。文中还涉及了开发工具使用技巧如快捷键、代码抽取等。
第一个hellowrold
java
public class HelloWorld {
public static void main(String[] args){
System.out.println("HellWorld");
}
}


javac编译
javac是JDK提供的编译工具,可以吧java文件编译成class文件
java运行
java
java HelloWorld

java中的关键字


\t制表符,补空格




long类型要加L作为后缀;



标识符

键盘录入

项目结构

新建项目
新建文件夹


创建package目录 com.boyao.demo1
快捷语句
psvm快速生成,sout快速生成
java
package com.boyao.demo1;
public class HelloWorld {
//psvm 快捷语句
public static void main(String[] args) {
//sout 快捷语句
System.out.println("HelloWorld");
}
}
设置编辑器背景

修改文件名

算数运算符

强制转换

逻辑运算符



无限循环

不知道循环的范围,也不知道循环的次数 ,用while循环,无限循环一般用while
随机数

java
import java.util.Scanner;
import java.util.Random;
public class LoopTest4 {
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int number = sc.nextInt();
System.out.println(number);
//获取一个随机数
Random rd = new Random();
int number2 = rd.nextInt(1000000);
//number2 0~999999
System.out.println(number2);
if(number == number2){
System.out.println("恭喜你,猜对了");
}else{
System.out.println("猜错了");
}
}
}
数组




java
public class ArrayDemo{
public static void main(String[] args){
//定义一个数组
//完整格式
int[] arr = new int[5];
//给数组赋值
arr[0] = 1;
arr[1] = 2;
arr[2] = 3;
arr[3] = 4;
arr[4] = 5;
//打印数组
System.out.println(arr[0]);
System.out.println(arr[1]);
System.out.println(arr[2]);
System.out.println(arr[3]);
System.out.println(arr[4]);
int[] arr3 = new int[]{1,2,3,4,5};
//简化格式
//数据类型[] 数组名 = { 元素1,元素2...}
int[] arr2 = {1,2,3,4,5};
}
}
数组地址值

数组动态初始化


静态初始化

获取数组最大值

为了提供效率,减少一次循环次数,循环开始条件可以为1;
java
public class ArrayDemo3{
public static void main(String[] args) {
int[] arr = {1,2,3,4,5};
for(int i=0,j=arr.length-1;i<j;i++,j--){
if(i != j){
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
for(int i=0;i<arr.length;i++){
//排序 54321
System.out.print(arr[i]+" ");
}
}
}
随机排序
java
public class ArrayDemo4{
public static void main(String[] args) {
//随机排序
int[] arr = {1,2,3,4,5};
Random rd = new Random();
for(int i=0;i<arr.length;i++){
//生产随机索引
int randomIndex = rd.nextInt(5);
int temp = arr[i];
arr[i]= arr[randomIndex];
arr[randomIndex] = temp;
}
for(int i=0;i<arr.length;i++){
System.out.print(arr[i]+" ");
}
}
}
内存分配

方法

定义方法
java
publc static void 方法名(){
方法体
}
//psvm 快捷键输出
示例:
public static void playGame(){
方法语句
}
方法调用

java
package com.boyao.demo1;
public class MethodsDemo1 {
public static void main(String[] args) {
//调用方法
playGmae();
method2();
}
//定义一个方法
public static void playGmae(){
System.out.println("方法1");
}
public static void method2(){
System.out.println("方法2");
}
}
带参数的方法定义和调用

java
package com.boyao.demo1;
public class MethodsDemo2 {
public static void main(String[] args) {
//调用方法
method2(10,20);
}
//定义一个方法
public static void method2(int num1,int num2){
System.out.println("方法2");
int res = num1 + num2;
System.out.println(res);
}
}

带返回值的方法
//如果方法没有返回值的话,用void
//如果方法有返回值的话,用数据类型 (例如: int)
java
package com.boyao.demo1;
public class MethodsDemo3 {
public static void main(String[] args) {
//调用方法
method3(10,20);
int res = method4(10,20);
System.out.println(res);
}
//定义一个方法
//如果方法没有返回值的话,用void
public static void method3(int num1,int num2){
System.out.println("方法3");
int res = num1 + num2;
System.out.println(res);
}
//如果方法有返回值的话,用数据类型 (例如: int)
public static int method4(int num1,int num2){
return num1 + num2;
}
}

方法的重载

同一类名,方法相同,参数不同

基本数据类型
new 出来的都是引用数据类型

ctrl + p 查看括号里面的参数
ctrl + alt + M 自动抽取方法

验证码练习
java
package com.boyao.demo1;
public class Test5 {
//定义方法随机生成一个5位数验证码
//前面4个字母是大写或小写。后面一个是数字
public static void main(String[] args) {
getCode();
}
//定义方法随机生成一个5位数验证码
public static String getCode() {
char[] chs = new char[52];
for (int i = 0;i<chs.length;i++){
if (i < 26) {
chs[i] = (char) ('a' + i);
} else {
chs[i] = (char) ('A' + i - 26);
}
}
//创建一个随机数对象
Random rd = new Random();
//随机生成一个0~9的数字
int index = rd.nextInt(52);
//随机生成一个0~9的数字
int number = rd.nextInt(10);
//将随机生成的数字和字母拼接
return chs[index] + chs[rd.nextInt(52)] + chs[rd.nextInt(52)] + chs[rd.nextInt(52)] + number;
}
}
加密练习
系统密码是1983,规则每位数加5,再对10取余,最后匠所有数字反转,得到一串新数。
解密

抽奖练习
java
import java.util.Random;
import java.util.Scanner;
public class Test1 {
public static void main(String[] args) {
//定义一个抽奖奖池,一吃抽奖,且不重复
int[] arr = {2,588,688,888,1000};
int[] newArr = new int[arr.length];
//调用抽奖方法
getChoujiang(arr,newArr);
}
//抽奖方法
public static void getChoujiang(int[] arr,int[] newArr) {
//定义一个随机数对象
Random rd = new Random();
//随机生成一个0~4的数字
for(int i=0;i<arr.length;i++){
int index = rd.nextInt(arr.length);
int pirze = arr[index];
if(isSame(newArr,pirze)){
i--;
continue;
}
newArr[i] = pirze;
}
for(int i=0;i<newArr.length;i++){
System.out.println("抽奖结果" + newArr[i]);
}
}
//判断是否重复
public static boolean isSame(int[] arr,int pirze) {
for(int i=0;i<arr.length;i++){
if(arr[i] == pirze){
return true;
}
}
return false;
}
}

双色球

java
import java.util.Random;
public class Test2{
public static void main(String[] args) {
//生成中奖号码
int[] arr = creatNumber();
System.out.println("中奖号码为:");
for(int i=0;i<arr.length;i++){
System.out.print(arr[i] + " ");
}
}
//红球1-33
//蓝色数字为1-16
//创建方法
public static int[] creatNumber(){
//生成7个数字 6个号码+1蓝色号码
int[] arr = new int[7];
Random rd = new Random();
for(int i=0; i< arr.length-1;){
int redNumber = rd.nextInt(33) + 1;
boolean flag = contains(arr,redNumber);
if(!flag){
arr[i] = redNumber;
i++;
}
}
//生成蓝色号码添加到数组中
int blueNumber = rd.nextInt(16) + 1;
arr[arr.length -1] = blueNumber;
return arr;
}
public static boolean contains(int[] arr,int number){
for(int i=0;i<arr.length;i++){
if(arr[i] == number){
return true;
}
}
return false;
}
}



java
public class ArrayDemo5 {
public static void main(String[] args) {
int[][] arr = {{1,2,3},{4,5,6}};
int[][] arr2 = new int[2][3];
int[][] arr3 = new int[][]{{1,2,3},{4,5,6}};
}
}

