前言:
直至今日,距离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,"老王的头发已经掉光了,为什么还一直去理发" />+"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多少年了呢,可以在评论区里互相交流哟