前言:
直至今日,距离Java语言的产生以及有27年了。也许我们陪伴Java的时间可能仅有三四年,甚至仅有一两年,但是她在我们心中的地位是至高无上的。从第一个“hello world”开始,我们就与Java结下了不解之缘,这也意味着我们要与她“结伴一生”。因此,在Java这个特殊的27岁,小威将与各位小伙伴儿一起经历Java的发展之路以及今后对Java的学习。
在这里,先谢谢各位小伙伴儿的支持了嘿嘿😉😉😉
文章目录
- 🥇Java语言的特点
- 🥈Java语言的发展史
- 🥉Java框架及云原生
- 🏆个人用Java做过的小项目
🥇Java语言的特点
Java是一门面向对象的编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。
Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。
Java具有简单性、面向对象、分布式、健壮性、平台独立与可移植性、多线程、动态性等特点。Java可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等。
- 简单性:Java语言继承了C++语言的优点,去掉了C++中学习起来比较难的多继承、指针等概念,所以Java语言学习起来更简单,使用起来也更方便。
- 面向对象:Java是一种面向对象的编程语言。
- 分布性:Java设计成支持在网络上应用,它是分布式语言。所以只要用Java编写了一个程序,就可以到处应用。可以节省大量人力物力。
- 编译和解释性:Java编译程序生成字节码,而不是通常的机器码,这使得Java开发程序比用其他语言开发程序快很多。
- 稳健性:Java刚开始被设计出来就是为了写高可靠和稳健的软件的。所以用Java写可靠的软件很容易。目前许多第三方交易系统、银行平台的前台和后台电子交易系统等都会用Java语言开发。
- 安全性:Java的存储分配模型是它防御恶意代码的主要方法之一。所以很多大型企业级项目开发都会选择用Java开发。
- 可移植性:Java并不依赖平台,用Java编写的程序可以运用到任何操作系统上。
- 高性能:Java是一种先编译后解释的语言,所以它不如全编译性语言快。但Java设计者制作了“及时”编译程序,这样就可以实现全编译了。
- 多线索性:Java是多线索语言,它可以同时执行多个程序,能处理不同任务。
- 动态性:Java语言设计成适应于变化的环境,它是一个动态的语言。
🥈Java语言的发展史
- 1995年,Sun公司推出了Java,但只是一种语言,还没有一个强大的开发类库;
- 1996年,第一个JDK1.0的发布(包括运行环境JRE和开发环境JDK);
- 1997年2月,SUN公司紧接着推出了JDK 1.1;
- 1998年12月8日,JDK1.2——第二代Java平台的企业版J2EE发布;
- 1999年6月,Java第二代平台2.0发布,并且Sun公司把Java体系分为三个方向:J2ME(Java2 Micro Edition,Java2平台的微型版),应用于移动、无线及有限资源的环境;J2SE(Java 2 Standard Edition,Java 2平台的标准版),应用于桌面环境;J2EE(Java 2Enterprise Edition,Java 2平台的企业版),应用于基于Java的应用服务器;
注意:Java 2平台的发布,是Java发展过程中最重要的一个里程碑,标志着Java的应用开始普及。 - 2000年5月,JDK1.3、JDK1.4和J2SE1.3相继发布,都大幅度的提高了Java的性能;
- 2002年2月26日,J2SE1.4发布;
- 2004年9月30日,J2SE1.5发布,成为Java语言发展史上的又一里程碑。为了表示该版本的重要性,J2SE 1.5更名为Java SE 5.0;
- 2005年6月,在Java One大会上,Sun公司发布了Java SE 6。此时,Java的各种版本已经更名,已取消其中的数字2(Java6最经典,流传最久的版本)。如下所示:
J2EE更名为JavaEE
J2SE更名为JavaSE
J2ME更名为JavaME - 2009年,Oracle收购Sun公司,每半年更新一次;
- 2014年,JavaSE8.0发布,企业级开发。
🥉Java框架及云原生
随着Java的发展,开发Java程序也变得越来越简单,Java框架也慢慢地流行了起来。我们学了Java基础,就要开始Java框架的学习了。那么,Java的框架主要有哪些呢?
Java框架主要有:轻量级且开源的Spring,WEB界面SpringMVC,数据库持久化的MyBatis,SpringBoot,SpringCloud,jQuery,Netty,Log4j,Quartz,Redis,RabbitMQ等等。
学过了Java基础的小伙伴儿们可以开始Java框架的学习了。
下面介绍一下云原生
Java和云原生有着很密集的联系,以后我们Java工程师也会朝着云原生发展。
云原生是基于分布部署和统一运管的分布式云,以容器、微服务、DevOps等技术为基础建立的一套云技术产品体系。云原生应用也就是面向“云”而设计的应用,在使用云原生技术后,开发者无需考虑底层的技术实现,可以充分发挥云平台的弹性和分布式优势,实现快速部署、按需伸缩、不停机交付等。
🏆个人用Java做过的小项目
在之前的Java学习中,自己大一的时候也曾做过几个小项目和小游戏,之前做完了保存了下来,今天就来分享给大家😁😁😁。
用Map集合写的考试系统
package java小项目;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Random;
import java.util.Scanner;
import java.util.Set;
public class 考试系统 {
public static void main(String[] args) {
// TODO 自动生成的方法存根
ArrayList <String>arr=new ArrayList<>();
ArrayList <Integer>arrl=new ArrayList();//存题号用,防止有重复题
String [][] a=new String[10][6];
HashMap <Integer,String>hm=new HashMap<>();
hm.put(0,"公共厕所()一国家首都:\n"+"A:美国\n"+"B:英国\n"+"C:中国\n"+"D:伦敦");
arr.add("D");
hm.put(1,"用什么拖地最干净:\n"+"A:拖把\n" +"B:扫帚\n"+"C:铲斗\n"+"D:用力");
arr.add("D");
hm.put(2,"老王的头发已经掉光了,为什么还一直去理发?\n"+"A:他有洁癖\n"+"B:他是理发师\n"+"C:他讲究男人的风度\n"+"D:他好久没洗头了");
arr.add("B");
hm.put(3,"失败为成功之母,那么成功为失败的什么?\n"+"A:之父\n" +"B:反义词\n"+"C:之儿\n"+"D:之母");
arr.add("B");
hm.put(4,"小白加小白等于什么?\n"+"A:小白俩\n" +"B:俩小白\n"+"C:大灰狼\n"+"D:小白兔");
arr.add("D");
hm.put(5,"历史上那个人物跑得最快?\n"+"A:曹操\n" +"B:刘备\n"+"C:诸葛亮\n"+"D:关羽");
arr.add("A");
hm.put(6,"蚊子咬在什么地方你不会觉得痒?\n"+"A:脚上\n" +"B:腿毛上\n"+"C:别人身上\n"+"D:背上");
arr.add("C");
hm.put(7,"汽车在右转弯时,哪个轮胎不转?\n"+"A:前轮胎\n" +"B:后轮胎\n"+"C:左轮胎\n"+"D:备用轮胎");
arr.add("D");
hm.put(8,"什么光会给人们带来痛苦?\n"+"A:黑光\n" +"B:暗光\n"+"C:强光\n"+"D:耳光");
arr.add("D");
hm.put(9,"什么情况下人会有两双眼睛?\n"+"A:睡觉的时候\n" +"B:变异的时候\n"+"C:两个人的时候\n"+"D:吃饭的时候");
arr.add("C");
int daxunhuan=0;
int kaoshi=0;//考试结束条件
while(daxunhuan!=999){
System.out.println("--------------------------------------");
System.out.println("单选题:");
System.out.println("--------------------------------------");
System.out.println("1:考试; 2:试题管理; 3:退出。");
System.out.println(" (请输入操作的代码1,2或3)" );
Random r=new Random();
Scanner s=new Scanner(System.in);
int c=s.nextInt();
switch(c){
case 1:while(kaoshi!=888){
System.out.println("请问要答几道题");//要答e道题
int e=s.nextInt();
double f=100.0/e;//f为每一道题占多少分
int g=r.nextInt(10);
arrl.add(g);
for(int i=1;i<e;i++){
int h=r.nextInt(10);
if(arrl.contains(h)){
i--;
}
else{
arrl.add(h);
}
}
int j=1;//j记录题号
int x=0;//x表示正确的题数,y反之
int y=0;
double sum=0;
for(Integer it:arrl){
System.out.println("第"+j+"题");
System.out.println(hm.get(it));
System.out.println("请输入您的答案:");
String str=s.next();
j++;
if(str.equals(arr.get(it))){
sum+=f;
x++;
System.out.println("恭喜你,这道题答对了!");
}
else{
y++;
System.out.println("很抱歉,这道题你答错了!");
}
}
System.out.println("您的得分是:"+sum);
System.out.println("正确的有"+x+"道");
System.out.println("错误的有"+y+"道");
if(sum>=60){
System.out.println("恭喜你,成绩合格,请问还想继续答题吗?");
}
else{
System.out.println("别学了,重开吧!");
}
System.out.println("-------------------------------");
System.out.println("若想退出考试请输入888,不想退出输入其他字符");
int k=s.nextInt();
kaoshi=k;
System.out.println("若想退出用户操作界面请输入999,若不想请随意输入");
int kk=s.nextInt();
daxunhuan=kk;
if(kk==999){
System.out.println("您已成功退出用户操作界面!");
}
}
break;
case 2:System.out.println("-------------------------------");
System.out.println("试题管理:");
System.out.println("11,添加试题; 22,删除试题; 33,修改试题; 44,查找试题; 55,遍历试题。");
System.out.println("请输入您想操作的编号");
int l=s.nextInt();
switch(l){
case 11:System.out.println("请问您想添加几道题");
int m=s.nextInt();
int n=arr.size();
for(int w=n;w<=m+n-1;w++){
System.out.println("请添加题目:");
String str=s.next();
hm.put(w, str);
System.out.println("请添加本题答案:");
String str2=s.next();
arr.add(str2);
}
System.out.println("您的题目已增加完毕");
break;
case 22: System.out.println("请问要删除第几道题?");
int tishu=arr.size();
int p=s.nextInt();
arr.remove(p-1);
System.out.println("已删除答案!");
hm.remove(p-1);
for(int i=p;i<tishu;i++){
String str1=hm.get(i);
hm.put(i-1, str1);
}
System.out.println("-------------------------------");
System.out.println("已删除试题!");
break;
case 33:System.out.println("-------------------------------");
System.out.println("请问要修改第几道题?");
int xiugai=s.nextInt();
System.out.println("-------------------------------");
System.out.println("您选择修改第"+xiugai+"道题,请修改题目:");
String str=s.next();
hm.put(xiugai-1, str);
System.out.println("题目修改完毕");
System.out.println("===============================");
System.out.println("请修改答案");
String str3=s.next();
arr.set(xiugai-1, str3);
System.out.println("答案修改完毕!");
break;
case 44:System.out.println("请问要查询第几题?");
int z=s.nextInt();
System.out.println("该题题目为:");
System.out.println(hm.get(z-1));
System.out.println("该题答案为:");
System.out.println(arr.get(z-1));
System.out.println("-------------------------------");
break;
case 55:int jj=0;
Set set=hm.entrySet();
Iterator it =set.iterator();
while(it.hasNext()){
Map.Entry me=(Map.Entry)(it.next());
int ii=(int) (me.getKey());
jj=ii+1;
System.out.println("第"+jj+"题题目:");
System.out.println(me.getValue());
System.out.println("第"+jj+"题答案:");
System.out.println(arr.get(ii));
System.out.println("-------------------------------");
}
break;
default : daxunhuan=999;
System.out.println("您的输入有错误,已退出,请重开!");
break;
}//5选1括号
break;
case 3:System.out.println("若想退出请输入999");
int xx=s.nextInt();
daxunhuan=xx;
System.out.println("您已退出!");
break;
}//3选一括号
}//daxunhuan括号
}
}
文章到这里就结束了,如果文章有什么需要改进的地方,还请大佬指正😘😘😘
制作不用,感谢各位小伙伴儿们的支持🎉🎉🎉
小威在这里谢谢大家✨✨✨
最后,各位陪伴了Java多少年了呢,可以在评论区里互相交流哟🎀🎀🎀