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.常用开发工具中的配置

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值