一、java前言
Java的历史和特点
1.历史:Java由Sun Microsystems于1995年发布,最初是为消费电子产品设计的。后来,它因其跨平台特性、强大的网络功能和安全性,迅速成为企业级应用开发的主要语言之一。
2.跨平台性:“一次编写,到处运行”是Java的核心理念,这得益于Java虚拟机(JVM)的存在,使得Java程序可以在任何安装了JVM的平台上运行。
3.面向对象:Java是一种完全的面向对象编程语言,支持封装、继承和多态等OOP特性。
4.安全性:Java提供了沙箱安全模型和内存管理机制,减少了程序出错的可能性,提高了安全性。
5.丰富的API:Java拥有庞大的标准库,涵盖了网络、图形界面、数据库连接、XML解析等多个领域,大大简化了开发工作。
二、java学习路径
1、基础知识:从Java的基本语法开始学起,如变量、数据类型、运算符、控制结构(循环、条件语句)、数组和字符串。
2、面向对象编程:理解类、对象、构造函数、封装、继承、多态的概念和用法。
3、核心类库:学习如何使用Java的内置类,如集合框架(List、Set、Map)、异常处理、输入输出流等。
4、项目实践:通过实际项目来巩固所学知识,可以从简单的命令行应用开始,逐步过渡到GUI应用或Web应用。
5、深入学习:掌握更高级的主题,如并发编程、反射、注解、泛型、lambda表达式等。
工具和框架:熟悉常用的开发工具(如Eclipse、IntelliJ IDEA)和框架(如Spring、Hibernate),这些工具和框架能够极大地提高开发效率。
三、java基础练习(提高编程能力)
题目1:开发验证码问题(随机生成5位数字验证码,前4位是字母包括大小写,最后一位是数字)
解析:首先根据题目要求,随机生成大小写字母,我们可以把这些字母存放到一个数组中通过导入random模块来实现获取随机数组的索引,最后在加入一个0-10以内的数字。
package java编程训练;
import java.util.Random;
public class 开发验证码 {//随机生成5位数字验证码,前4位是字母包括大小写,最后一位是数字
public static void main(String[] args) {
//首先把26个小写字母存到数组中
char [] chrs=new char[52]
for(int i=0;i<26;i++){
chrs[i]=char(97+i)
}
//把26个大写字母存到数组中
for(int i=26;i<52;i++){
chrs[i]=char(65+i-26)
}
通过这个方式就可以获得到大小写的26个字母
package java编程训练;
import java.util.Random;
public class 开发验证码 {//随机生成5位数字验证码,前4位是字母包括大小写,最后一位是数字
public static void main(String[] args) {
Random r = new Random();
//生成字母26个,大小写字母一共52个
//如果是随机生成字母,首先可以把字母放到数组中,然后随机生成数组下标,取出数组中的字母
char[] chars = new char[52];
for (int i = 0; i < 26; i++) {
chars[i] = (char) (97 + i);
}
for (int i = 26; i < 52; i++) {
chars[i] = (char) (65 + i - 26);
}
String result = "";
//随机生成数组下标
int random_num = r.nextInt(10);
for (int i = 0; i < 4; i++) {
int random_index = r.nextInt(52);
result += chars[random_index];
}
System.out.println(result += random_num);
//获取到10位随机数
}
}
随后通过random模块随机生成4个数组的索引,和一个数字。就完成了。打印结果
我们每一次运行代码,得到的结果都是不一样的。由此可以完成随机生成验证码的需求。
题目2:评委打分问题;要求键盘输入6位评委的成绩,算出平均分(总分-最高-最低)/4
题目分析:要求键盘输入6位评委给出的成绩,所以我们想到使用方法来完成。
package java编程训练;
import java.util.Scanner;
public class 评委打分 {
public static void main(String[] args) {
}
public static int[] get_score() {
//创建一个数组存储6位评委的成绩
int []scores=new int[6];
Scanner sc = new Scanner(System.in);
for (int i=0;i<6;){
System.out.println("请输入第" + (i + 1) + "位评委的打分");
int score=sc.nextInt();
scores[i]=score;
if(score>=0&&score<=100){
i++
}
else{
System.out.println("成绩超出范围,继续输入成绩,当前的i为" + i);
}
return scores;
}
以上是获取通过方法定义获取通过键盘输入来得到6位评委给出的分数。
接下来的步骤就比较简单,只要在主函数中调用方法,拿到最大和最小值就好了。
package java编程训练;
import java.util.Scanner;
public class 评委打分 {
public static void main(String[] args) {
int[] score_arr = get_score();
for (int i = 0; i < score_arr.length; i++) {
System.out.println(score_arr[i]);
}
//找到数组中的最大值
int max = Max_score(score_arr);
System.out.println("最大值为:" + max);
//找到数组中的最小值
int min = Min_score(score_arr);
System.out.println("最小值为:" + min);
//求出总和
int sum = 0;
for (int i = 0; i < score_arr.length; i++) {
sum += score_arr[i];
}sum = sum - min - max;
int avg = sum / score_arr.length;
System.out.println("平均分为:" + avg);
}
public static int[] get_score() {
int[] score = new int[6];
Scanner sc = new Scanner(System.in);
for (int i = 0; i < score.length; ) {
System.out.println("请输入第" + (i + 1) + "位评委的打分");
int scores = sc.nextInt();
score[i] = scores;
if ( scores >= 0 && scores <= 100 ) {
i++;
} else {
System.out.println("成绩超出范围,继续输入成绩,当前的i为" + i);
}
}
return score;
}
public static int Max_score(int[] score_arr) {
int max = score_arr[0];
for (int i = 0; i < score_arr.length; i++) {
if ( score_arr[i] > max ) {
max = score_arr[i];
}
}
return max;
}
public static int Min_score(int[] score_arr) {
int min = score_arr[0];
for (int i = 0; i < score_arr.length; i++) {
if ( score_arr[i] < min ) {
min = score_arr[i];
}
}
return min;
}
}
以上就是今天的练习内荣。
四、java学习的注意点
理解基本概念:确保对面向对象编程(OOP)的基本原则有深刻的理解,包括封装、继承和多态。
编码规范:遵循Java的编码规范,如命名约定、代码缩进、注释风格等,这有助于代码的可读性和维护性。
API文档:学会查阅官方API文档,这将帮助你理解和使用Java的类库,避免重复造轮子。
异常处理:了解Java的异常处理机制,学会使用try-catch-finally语句块,以及合理地抛出和捕获异常。
单元测试:养成编写单元测试的习惯,确保代码的健壮性和可靠性。
性能优化:理解Java内存模型,学会分析和优化代码性能,避免内存泄漏等问题。
安全编程:重视代码的安全性,避免SQL注入、XSS攻击等常见安全漏洞。
持续学习:Java生态系统不断更新,新版本会引入新的特性和改进,保持学习最新的Java标准和最佳实践。
实践经验:通过实际项目来应用所学知识,可以是个人项目或是开源贡献,实践是检验学习成果的最佳方式。
社区参与:加入Java开发者社区,如Stack Overflow、GitHub、各种技术论坛等,与其他开发者交流可以加速学习进程