java,
java,
一、介绍
介绍-----java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针
等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,
极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程 。
特性----Java具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特点。Java
可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等 。
本质----java是一个平台(jvm+api),将java源码编译文件可以在已经安装jvm的任何硬件上运行。java独立于平台,会
比本地代码稍慢,但是编译和虚拟机技术可以降低这种影响。
jvm:虚拟机,编译文件基于虚拟机在硬件上运行。
api:是现有软件元素的集合,能提供许多有用的特性,被划分为许多相关类和接口的库,这些库就是包。
作用---- java可以完成以下功能。
1.开发工具
涉及编译(javac),运行(java),监视,调试和文档生成(javadoc)
2.编程接口 API
提供 Java 编程语言的核心功能
3.部署
JDK 按标准机制,将应用展现给终端用户
如:ava Web Start 和 Java Plug-In
4.用户接口工具集
借助 JavaFX,Swing 和 Java 2D,Java 能够创建复杂的图形用户接口
5. 集成库
通过Java RMI-IIOP Technology协议,集成库,如 Java IDL API, JDBC API, JNDI API
Java RMI, Java Remote Method Invocation,能够访问数据库,并操纵远程对象。
java组成
jdk(java development kit):指开发工具,一般jdk包含对应版本的基础jar包以及一些开发开发当中可能
需要用到的工具;jre
jre(Java Runtime Environment):指java运行环境,包含lib类库(jvm运行class文件之前需要调用该类库进
行文件解释);jvm,即运行通过jvm来实现
jvm(java virtuak machine):指虚拟机,执行经过编译的class文件。
一般下载一个版本解压之后包含两个子文件夹:
1.jdk文件夹:jdk和jre( java 开发环境时会优先去这里找对应的jre)
2.jre文件夹:jre(只运行java程序,不具备开发功能,在命令行中只能执行java指令,不能运行javac指令)
以上两者也可单独下载与安装。
2.下载
2.1.版本介绍
从应用上类型上分为三个版本:
java SE:是做电脑上运行的软件
java EE:是用来做网站的(我们常见的jsp技术)
java SM:是用来做手机上运行的软件
作为开发者学习和开发中用的一般都是java se后面的介绍都是以这个版本为主。对于这个版本目前已经更新
到1.9版 本,个版本介绍如下:
1.5版本之前:略
1.5新特性:
1.自动装箱与拆箱:原始类型与对应的包装类不用显式转换
ArrayList list=new ArrayList()----------->ArrayList<Integer>list=new ArrayList<Integer>();
2.静态导入:通过使用 import static,就可以不用指定 Constants 类名而直接使用静态成员,包括静态方法。
Math.sqrt();----------->sqrt();
3.For-Each循环:For-Each循环得加入简化了集合的遍历。
for(i=0;i<a.length;i++){......}----------->for(int i:a){......}
4.泛型:可以指定集合的元素类型。
ArrayList list=new ArrayList()----------->ArrayList<Integer>list=new ArrayList<Integer>();
5.变长参数:有任意个参数,看作数组。
int sum(int ...intlist)
1.6新特性:
1.使用Compiler API
2.轻量级Http Server API
1.7新特性:
1.switch中可以使用字符串
String s = ...
switch(s) {
case "quux":
processQuux(s);
// fall-through
case "foo":
case "bar":
processFooOrBar(s);
break;
case "baz":
processBaz(s);
// fall-through
default:
processDefault(s);
break;
}
2.对集合类的语言支持:Java将包含对创建集合类的第一类语言支持。这意味着集合类的创建可以像Ruby和Perl那样了
(下面的这些集合是不可变的)
之前版本:
List<String> list = new ArrayList<String>();
list.add("item");
String item = list.get(0);
Set<String> set = new HashSet<String>();
set.add("item");
Map<String, Integer> map = new HashMap<String, Integer>();
map.put("key", 1);
int value = map.get("key");
现在版本:
List<String> list = ["item"];
String item = list[0];
Set<String> set = {"item"};
Map<String, Integer> map = {"key" : 1};
int value = map["key"];
1.8新特性:
1.HashMap中的红黑树:HashMap中链长度大于8时采取红黑树的结构存储。
红黑树除了添加情况之外,其他时候的效率高于链表结构
2.ConcurrentHashMap:底层采用node数组+链表+红黑树的存储结构,通过CAS算法(乐观锁机制)+synchronized
来保证并发安全的实现。
put()方法过程:
1) 根据key的hash值数组中相应位置的Node还未初始化,则通过CAS插入相应的数据;
2) 如果相应位置的Node不为空,且当前该节点不处于移动状态,则对该节点加synchronized锁,如果该节点的hash不小于0,则遍历链表更新节点或插入新节点;
3) 如果该节点是TreeBin类型的节点,说明是红黑树结构,则通过putTreeVal方法往红黑树中插入节点;
3.接口中可以有默认方法与静态方法,也就是接口中可以有实现方法
默认方法中的default不可省略,子类重写时候,必须去掉default修饰符
4.Lambda表达式:lambda表达式的使用简化了代码。
1.9新特性:
暂略
1.10新特性:
暂略
2.2 下载
进入oracle官网进行下载:https://www.oracle.com/index.html(官网上已经不对外开发下载1.7版本)
下载步骤:
第一步:按如图红色方框找到java overview并点击进入
第二步:滑到页面底部点击如框所示部分
第三步:选择自己需要的版本,这里以选1.8为例
第四步:选择与电脑适配的版本进行下载
3.安装
4.环境变量配置
5.常用开发工具中的配置
相关文章
- 暂无相关文章
用户点评