首页编程java编程现在java是什么版本号,java的JDK更新到什么版本了

现在java是什么版本号,java的JDK更新到什么版本了

编程之家2023-10-1193次浏览

大家好,感谢邀请,今天来为大家分享一下现在java是什么版本号的问题,以及和java的JDK更新到什么版本了的一些困惑,大家要是还不太明白的话,也没有关系,因为接下来将为大家分享,希望可以帮助到大家,解决大家的问题,下面就开始吧!

现在java是什么版本号,java的JDK更新到什么版本了

JAVA现在一共有多少版本

以下内容来自于百度百科:java

其中JAVA8明显是跳票了。。。指不定什么时候

发展历史

现在java是什么版本号,java的JDK更新到什么版本了

1995年5月23日,Java语言诞生

1996年1月,第一个JDK-JDK1.0诞生

1996年4月,10个最主要的操作系统供应商申明将在其产品中嵌入JAVA技术

现在java是什么版本号,java的JDK更新到什么版本了

1996年9月,约8.3万个网页应用了JAVA技术来制作

1997年2月18日,JDK1.1发布

1997年4月2日,JavaOne会议召开,参与者逾一万人,创当时全球同类会议规模之纪录

1997年9月,JavaDeveloperConnection社区成员超过十万

1998年2月,JDK1.1被下载超过2,000,000次

1998年12月8日,JAVA2企业平台J2EE发布

1999年6月,SUN公司发布Java的三个版本:标准版(JavaSE,以前是J2SE)、企业版(JavaEE以前是J2EE)和微型版(JavaME,以前是J2ME)

2000年5月8日,JDK1.3发布

2000年5月29日,JDK1.4发布

2001年6月5日,NOKIA宣布,到2003年将出售1亿部支持Java的手机

2001年9月24日,J2EE1.3发布

2002年2月26日,J2SE1.4发布,自此Java的计算能力有了大幅提升

2004年9月30日18:00PM,J2SE1.5发布,成为Java语言发展史上的又一里程碑。为了表示该版本的重要性,J2SE1.5更名为Java SE 5.0

2005年6月,JavaOne大会召开,SUN公司公开Java SE 6。此时,Java的各种版本已经更名,以取消其中的数字“2”:J2EE更名为Java EE,J2SE更名为Java SE,J2ME更名为Java ME

2006年12月,SUN公司发布JRE6.0

2009年04月20日,甲骨文74亿美元收购Sun。取得java的版权。

2010年11月,由于甲骨文对于Java社区的不友善,因此Apache扬言将退出JCP[3]。

2011年7月28日,甲骨文发布java7.0的正式版。

最新版本

甲骨文的Java总架构师马克·雷纳德在2011年JavaOne大会上为大家透露了Java 8的新功能,同时也谈到了一些关于Java 9的计划。[4]

Java8将会包含很多新特性,有如 Lambdas, Jigsaw模块化等等,而首个里程碑版将于本月末发布,详细的时间表如下:

M1: April 24, 2012

M2: June 14, 2012

M3: July 30, 2012

从M1-GA的发展过程

M4: September 11, 2012

M5: November 26, 2012

M6: January 30, 2013(Recommended Feature Complete date)

GA: September 2013

java version15是java1.8以上吗

作者|一个程序员的成长

责编|胡巍巍

记得今年年初刚开始面试的时候,被问的最多的就是你知道Spring的两大核心嘛?那你说说什么是AOP,什么是IOC?我相信你可能也被问了很多次了。

到底是什么是AOP?

所谓AOP也就是面向切面编程,能够让我们在不影响原有业务功能的前提下,横切扩展新的功能。这里面有一个比较显眼的词我们需要注意一下,横切,它是基于横切面对程序进行扩展的。

AOP相关术语

在Spring的AOP中有很多的术语,而且容易混淆,大家一定要先搞清楚这几个概念:

连接点(Joinpoint):在程序执行过程中某个特定的点,比如类初始化前、类初始化后,方法调用前,方法调用后;

切点(Pointcut):所谓切点就是你所切取的类中的方法,比如你横切的这个类中有两个方法,那么这两个方法都是连接点,对这两个方法的定位就称之为切点;

增强(Advice):增强是织入到连接点上的一段程序,另外它还拥有连接点的相关信息;

目标对象(Target):增强逻辑的织入目标类,就是我的增强逻辑植入到什么位置;

引介(Introduction):一种特殊的增强,它可以为类添加一些属性喝方法;

织入(Weaving):织入就是讲增强逻辑添加到目标对象的过程;

代理(Proxy):一个类被AOP织入增强后,就会产生一个结果类,他是融合了原类和增强逻辑的代理类;

切面(Aspect):切面由切点和增强组成,他是横切逻辑定义和连接点定义的组成;

AOP功能实践

我们这里主要是学习SpringBoot中的一些功能,所以我们这里用的是SpringBoot工程,版本也是最新的2.0.5版本。

创建SpringBoot工程就不说了,我们直接引入Maven的依赖:

<parent>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-parent</artifactId>

<version>2.0.5.RELEASE</version>

<relativePath/><!-- lookup parent from repository-->

</parent>

<properties>

<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>

<java.version>1.8</java.version>

</properties>

<dependencies>

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-web</artifactId>

<exclusions>

<exclusion>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-tomcat</artifactId>

</exclusion>

</exclusions>

</dependency>

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-jetty</artifactId>

</dependency>

<!--引入AOP-->

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-aop</artifactId>

</dependency>

</dependencies>

<build>

<plugins>

<plugin>

<groupId>org.apache.maven.plugins</groupId>

<artifactId>maven-compiler-plugin</artifactId>

<version>3.6.1</version>

<configuration>

<source>1.8</source>

<target>1.8</target>

</configuration>

</plugin>

<plugin>

<groupId>org.apache.maven.plugins</groupId>

<artifactId>maven-surefire-plugin</artifactId>

<version>2.20</version>

<configuration>

<skip>true</skip>

</configuration>

</plugin>

<plugin>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-maven-plugin</artifactId>

<executions>

</executions>

</plugin>

</plugins>

</build>

首先我们来创建一个Controller类:

@RestController

public class LoginController{

@GetMapping(value="/username")

public String getLoginUserName(String userName, Integer age){

return userName+"---"+ age;

}

}

创建切面:

@Aspect

@Component

public class LogAspect{

/**

*功能描述:拦截对这个包下所有方法的访问

*

*@param:[]

*@return:void

**/

@Pointcut("execution(* com.example.springbootaop.controller.*.*(..))")

public void loginLog(){

}

//前置通知

@Before("loginLog()")

public void loginBefore(JoinPoint joinPoint){

//我们从请求的上下文中获取request,记录请求的内容

ServletRequestAttributes attributes=(ServletRequestAttributes) RequestContextHolder.getRequestAttributes();

HttpServletRequest request= attributes.getRequest();

System.out.println("请求路径:"+ request.getRequestURL());

System.out.println("请求方式:"+ request.getMethod());

System.out.println("方法名:"+ joinPoint.getSignature().getName());

System.out.println("类路径:"+ joinPoint.getSignature().getDeclaringTypeName());

System.out.println("参数:"+ Arrays.toString(joinPoint.getArgs()));

}

@AfterReturning(returning="object", pointcut="loginLog()")

public void doAfterReturning(Object object){

System.out.println("方法的返回值:"+ object);

}

//方法发生异常时执行该方法

@AfterThrowing(throwing="e",pointcut="loginLog()")

public void throwsExecute(JoinPoint joinPoint, Exception e){

System.err.println("方法执行异常:"+ e.getMessage());

}

//后置通知

@After("loginLog()")

public void afterInform(){

System.out.println("后置通知结束");

}

//环绕通知

@Around("loginLog()")

public Object surroundInform(ProceedingJoinPoint proceedingJoinPoint){

System.out.println("环绕通知开始...");

try{

Object o= proceedingJoinPoint.proceed();

System.out.println("方法环绕proceed,结果是:"+ o);

return o;

} catch(Throwable e){

e.printStackTrace();

return null;

}

}

}

注解概述:

@Apsect:将当前类标识为一个切面;

@Pointcut:定义切点,这里使用的是条件表达式;

@Before:前置增强,就是在目标方法执行之前执行;

@AfterReturning:后置增强,方法退出时执行;

@AfterThrowing:有异常时该方法执行;

@After:最终增强,无论什么情况都会执行;

@Afround:环绕增强;

测试:

异常测试:

定义自定义注解

应用场景:在我之前上个项目的时候,有这样一个注解,就是在访问其他接口的时候必须要登录,那么这个时候我们就定义一个注解,让它去对用户是否登录进行校验,那么基于这样的一个场景,我们来定义一个校验登录的注解。

创建一个注解:

@Target({ElementType.METHOD, ElementType.TYPE})

@Retention(RetentionPolicy.RUNTIME)

public@interface Auth{

String desc() default"验证是否登录";

}

创建一个AOP切面:

@Aspect

@Component

public class LoginAspect{

@Pointcut(value="@annotation(com.example.springbootaop.annotation.Auth)")

public void access(){

}

@Before("access()")

public void before(){

System.out.println("开始验证用户是否登录...");

}

@Around("@annotation(auth)")

public Object around(ProceedingJoinPoint pj, Auth auth){

//获取注解中的值

System.out.println("注解中的值:"+ auth.desc());

try{

//检验是否登录 true已经登录 false未登录

Boolean flag= false;

if(flag== true){

return"登录成功";

} else{

return"未登录";

}

} catch(Throwable throwable){

return null;

}

}

}

测试未登录:

测试登录:

这样我们就可以简单的实现了一个登录校验的注解。

通过今天的分享你会使用AOP和自定义注解了吗?我把源码的地址放在下面,有兴趣的朋友可以看看。

GitHub地址:

https://github.com/liangbintao/SpringBootIntegration.git

作者:一个非科班出身的屌丝男,自学半年多,找到了一份还不错的工作,我希望做一个专注于Java领域与思维认知的公众号,希望可以带领更多的初学者和入门选手,通过自己努力,得到更多的技术上的提升和思维认知上的拓展。

声明:本文为公众号一个程序员的成长投稿,版权归对方所有。

推荐阅读:

“围剿”余额宝!微信零钱通能否逆袭成功?|畅言

新型 Linux病毒,脚本超 1000行,功能复杂

Istio,下一个Kubernetes?

有多少人等着看百度区块链的笑话?

炸了!刚写完这段代码,就被开除了…

顶尖AI技术人才稀缺,在校生还能追上这波浪潮吗?

“写代码三年月薪不到一万是不是很失败?”

到目前为止java语言分为哪几个版本

Java2平台包括标准版(J2SE),企业版(J2EE)和为微缩版(J2ME)三个版本:

Standard Edition(标准版)J2SE包括那些构成Java语言核心的类。

例如:数据库链接,接口定义,输入/输出,网络编程

Enterprise Edition(企业版)J2EE包含J2SE中的类,并且还包括用于开发企业级应用的类。

例如:EJB,servlet,JSP,XML,事务控制

Micro Edition(微缩版)J2ME包含J2SE中一部分类,用于消费类电子产品的软件开发。

例如:呼机,智能卡,手机,PDA,机顶盒

他们的范围是:J2SE包含于J2EE中,J2ME包含了J2SE的核心类,但新添加了一些专有类,应用场合,API的覆盖范围各不相同。

java的JDK更新到什么版本了

Standard Edition(标准版)的最新版:jdk 14。

Early-Access(先行版)的最新版:jdk15。

LTS(长期支持版)的最新版:jdk 11.0.6。

JRE(Java Runtime Environment,Java运行时环境),包含了java虚拟机、java基础类库。是使用java语言编写的程序运行所需要的软件环境。

它相当于操作系统部分,提供了Java程序运行时所需要的基本条件和许多Java基础类,例如,IO类、GUI控件类、网络类等。JRE是提供给普通用户使用的,如果你只想运行别人开发好的Java程序,那么,你的计算机上必须且只需安装JRE。

JDK(Java Development Kit,Java开发工具包),它包含编译工具、解释工具、文档制作工具、打包工具多种与开发相关的工具,是提供给Java开发人员使用的。JDK包含了JRE,同时还包含了编译java源码的编译器javac,还包含了很多java程序调试和分析的工具:jconsole,jvisualvm等工具软件,还包含了java程序编写所需的文档和demo例子程序。

文章分享结束,现在java是什么版本号和java的JDK更新到什么版本了的答案你都知道了吗?欢迎再次光临本站哦!

七乐彩的玩法(七乐彩玩法中奖)java类和对象有什么用?java类和对象的关系是什么