我们与Java的不解之缘—Java27岁生日快乐

前言:
直至今日,距离Java语言的产生以及有27年了。也许我们陪伴Java的时间可能仅有三四年,甚至仅有一两年,但是她在我们心中的地位是至高无上的。从第一个“hello world”开始,我们就与Java结下了不解之缘,这也意味着我们要与她“结伴一生”。因此,在Java这个特殊的27岁,小威将与各位小伙伴儿一起经历Java的发展之路以及今后对Java的学习。
在这里,先谢谢各位小伙伴儿的支持了嘿嘿???
在这里插入图片描述

?Java语言的特点

Java是一门面向对象的编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。
Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。
Java具有简单性、面向对象、分布式、健壮性、平台独立与可移植性、多线程、动态性等特点。Java可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等。

  1. 简单性:Java语言继承了C++语言的优点,去掉了C++中学习起来比较难的多继承、指针等概念,所以Java语言学习起来更简单,使用起来也更方便。
  2. 面向对象:Java是一种面向对象的编程语言。
  3. 分布性:Java设计成支持在网络上应用,它是分布式语言。所以只要用Java编写了一个程序,就可以到处应用。可以节省大量人力物力。
  4. 编译和解释性:Java编译程序生成字节码,而不是通常的机器码,这使得Java开发程序比用其他语言开发程序快很多。
  5. 稳健性:Java刚开始被设计出来就是为了写高可靠和稳健的软件的。所以用Java写可靠的软件很容易。目前许多第三方交易系统、银行平台的前台和后台电子交易系统等都会用Java语言开发。
  6. 安全性:Java的存储分配模型是它防御恶意代码的主要方法之一。所以很多大型企业级项目开发都会选择用Java开发。
  7. 可移植性:Java并不依赖平台,用Java编写的程序可以运用到任何操作系统上。
  8. 高性能:Java是一种先编译后解释的语言,所以它不如全编译性语言快。但Java设计者制作了“及时”编译程序,这样就可以实现全编译了。
  9. 多线索性:Java是多线索语言,它可以同时执行多个程序,能处理不同任务。
  10. 动态性:Java语言设计成适应于变化的环境,它是一个动态的语言。

在这里插入图片描述

?Java语言的发展史

  1. 1995年,Sun公司推出了Java,但只是一种语言,还没有一个强大的开发类库;
  2. 1996年,第一个JDK1.0的发布(包括运行环境JRE和开发环境JDK);
  3. 1997年2月,SUN公司紧接着推出了JDK 1.1;
  4. 1998年12月8日,JDK1.2——第二代Java平台的企业版J2EE发布;
  5. 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的应用开始普及。
  6. 2000年5月,JDK1.3、JDK1.4和J2SE1.3相继发布,都大幅度的提高了Java的性能;
  7. 2002年2月26日,J2SE1.4发布;
  8. 2004年9月30日,J2SE1.5发布,成为Java语言发展史上的又一里程碑。为了表示该版本的重要性,J2SE 1.5更名为Java SE 5.0;
  9. 2005年6月,在Java One大会上,Sun公司发布了Java SE 6。此时,Java的各种版本已经更名,已取消其中的数字2(Java6最经典,流传最久的版本)。如下所示:
    J2EE更名为JavaEE
    J2SE更名为JavaSE
    J2ME更名为JavaME
  10. 2009年,Oracle收购Sun公司,每半年更新一次;
  11. 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多少年了呢,可以在评论区里互相交流哟???
在这里插入图片描述

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
分享
二维码
< <上一篇
下一篇>>