美文网首页
java 基础部分

java 基础部分

作者: 青青雉 | 来源:发表于2019-07-05 16:31 被阅读0次

# Java 的开发历史 #

    java 最初的时候是由sun(Sun Microsyst NetWok 中文名称是斯坦福大学校园网)公司开展oak 项目衍生出来的技术。

    1995年,sun公司推出Java 技术,于1996 年推出java1.0版本,1997年在中国登陆

    在sun公司的低潮期,最想收购java的是IBM 公司,但是却最终被Orcale公司进行收购。

    在当时通过Java 赚到钱的只有 ibm ,直到现在为止Oracle 只是通过Java 的版权争执获取到一部分的利益。

# Java 的版本 #

    Java 分为三个版本:

        java se : 原先的时候是 J2SE ,后来被更名为java se ,原先是想要做系统应用的,是最底层的内容

        Java me : 原先的时候是 J2ME.后来被更名为 Java me 。

        原先是想要做手机系统的,因为 Nokia 的衰落而衰落

        Java ee : 原先的时候是 J2EE ,后来被更名为 Java ee,

        原先的时候是想要做企业平台的搭建,现在主要开发互联网平台

# java 主要特点 #

- 半开源 : java 程序更加透明,更加容易让人接受

- 面向对象 :让大家更加容易理解和开发

- 可移植性 : 让大家可以进行多平台的开发

- 多线程 :让大家可以同时处理多个任务,但是也带来了高并发等等问题

- 高效的网络处理能力

- 高效的垃圾回收机制 : java 程序去除指针反而使用引用的方式进行替代,让大家可以不用去实时的进行对象的回收(带来的弊端是需要进行优化)

# Java 语言的分类 #

    java 语言既不属于编译型语言,也不属于解释型语言。因为java 文件会在刚开始的时候通过编译器编译成为一个.class文件(编译过程),然后再通过jvm 直接运行.class文件(解释过程,就像c语言打包后成为.exe可执行文件进行使用)

其他意见

    先看下定义:编译型语言:把做好的源程序全部编译成二进制代码的可运行程序,然后,可直接运行这个程序。解释型语言:把做好的源程序翻译一句,然后执行一句,直至结束!Java它首先由编译器编译成.class(字节码)文件,然后在通过JVM从.class文件中读一行解释执行一行,所以它是解释型的语言,也正是由于java对于多种不同的操作系统有不同的JVM,所以实现了真正意义上的跨平台。

    有些答案对JAVA的理解还停留在上古时代或者教科书里。其实,现在用编译型、解释型来分类编程语言已经有点力不从心了。JAVA的第一道工序是javac编译,当然目标文件是BYTECODE。后续可能有三种处理方式:1. 运行时,BYTECODE由JVM逐条解释执行,2. 运行时,部分代码可能由JIT翻译为目标机器指令(以method为翻译单位,还会保存起来,第二次执行就不用翻译了)直接执行;3. RTSJ。继JAVAC之后执行AOT二次编译,生成静态的目标平台代码(典型的就是IBM WEBSHPERE REAL TIME)。有的时候,可能是以上三种方式同时在使用。至少,1和2是同时使用的,3需要程序员手工指定。所以讨论语言得更细化一点了,强类型的、弱类型的,静态的、动态的,GC-based的、手工管理内存的,有没有VM...

# java 开发基础 #

    在java 开发中的最小单位是类,而类中的最小执行单元是方法

    在一个java 文件有两种类(内部类和匿名内部类暂且不说)

-     public class (公共类): 一个java 文件中只可以有一个

-            class (普通类): 一个Java文件中可以有多个

    java 中都是通过在main(主方法)开始运行,而主方法所在的类被称为主类

# java 开发之 CLASSPATH 的配置 #

    CLASSPATH 是jvm进行编译的时候调用的环境,默认是在当前生成.class 文件,但是在某些 java 工具会修改CLASSPATH,所以大家可以在windows 的环境设置进行设置修改,格式是 CLASSPATH 就是.(点),如果在cmd 窗口中进行修改那么可以设置为

    SET CLASSPATH = "位置"

    如果设置为默认环境可以使用 

    SET CLASSPATH = .进行设置

# java 开发之注释 #

    java 之中有三种注释的方法:

        单行注释 : //

        多行注释 : /*  */

        文档注释 : /**  */

    在开发中一般使用单行注释,如果有多行代码出错,或者其他情况使用多行注释,如果是重要的类或者是方法可以使用文档注释进行注释

    ps :如果使用文档注释可以使用 javadoc.exe 生成一个 doc 开发文档 

# java 标识符和关键字 #

    java 中对于方法,类等进行命名的格式被称为使用标识符,对于标识符需要以下几点要求

        -     标识符可以使用数字,字母,_与$ 进行使用

        -     标识符中不可以使用数字进行开头

        -     因为在Java中使用内部类编译生成后会出现$符号,所以如果在代码中使用应该进行避免(开发中一般不会使用)

        -     标识符不可以和关键字(包括保留字),true,false,null(Java中预定义的字面常量)相同

# java 语言的数据类型 #

    java 语言分为两个大类

        - 基础数据类型

            - 分为4类 8 种

                - 整数型

                    - byte

                    - shrt

                    - int

                    - long

                - 浮点型

                    - float

                    - double

                - 布尔型

                    - boolean

                - 字符型

                    - char

        - 引用数据类型

            - 分为三种

                - 枚举

                - 数组

                - 对象

基本数据的默认使用

    整数型默认使用 int

    浮点型默认使用 double 

        ps : double 比 float 的取值范围更加多

基本数据类型的默认数据

    整数型

        - 默认为0

    浮点型

        - 默认为0.0

    布尔型

        - 默认为 false

    字符型

        - 默认为 /u0000

基本数据类型的取值范围

    byte

         -128~127,占用1个字节(-2的7次方到2的7次方-1)

    short 

        -32768~32767,占用2个字节(-2的15次方到2的15次方-1) 

    int 

        -2147483648~2147483647),占用4个字节(-2的31次方到2的31次方-1) 

    long

        (-9223372036854774808~9223372036854774807),占用8个字节(-2的63次方到2的63次方-1)

    float

        3.402823e+38 ~ 1.401298e-45(e+38表示是乘以10的38次方,同样,e-45表示乘以10的负45次方)占用4个字节 

    double

        双进度浮点数使用42存储,有效位数16位,最大值是 10^16 ~ 10^17

    boolean

         这个类型只有两个值,true和false(真和非真),有人说可以占1/8个字节

    char

# 数据溢出 #

    在java 中,当一个值超过当前数据的大小的时候就会发生数据溢出(也就是数据回转,比如int 的Intager.MAX_VALUE + 1 后就会出现int 的最小值)

    解决的方法:

        对于数据进行更大类型的转换

# 数据类型转型的分类 #

    自动转换

    强制转换

# 字符型数据 #

    在java 中 字符型数据使用char 来表示,在char 中可以定义单个字符,字符包括以下几种

        - 数字(0-9)

        - 小写字母(a-z)

        - 大写字母 (A-Z)

        - 

    在char 数据类型中都可以转换为int 数据的类型,其中取值范围是

        - '0'  (48)  -  '9'  (57)

        - 'a'  (97)  -  'z'  (122)

        - 'A'  (65)  -   'Z'  (90)

# 布尔数据类型 #

    在java 中布尔类型使用Boolean 来进行表示,用来做逻辑的运行,只有 true false 值

# 字符串 #

    字符串不是一种基本数据类型,但是子实际开发中各种语言都会提供字符串的相应描述,而在java中使用 String 来进行表示

    可以使用 + 号进行字符串的连接(最常用)

    在String 类型中有各种方法进行方法,可以去开发文档中进行查看

    ps : 在各种数据类型进行加法计算的时候,碰巧有String 数据对其进行连接操作,如果没有指定操作顺序(也就是在计算操作的时候加上一个()括号),那么就会优先进行字符串的连接操作

    在各种数据类型进行其他计算(加法除外)的时候,碰巧有String 数据对其进行连接操作,如果没有指定操作顺序(也就是在计算操作的时候加上一个()括号),那么就会报错

# 转义字符 #

    如果某些操作需要使用符号或者换行 ,空格 , tab制表符等操作,那么需要进行转义字符对其进行转义,否则的话得到的结果会和自己想要的结果不同

# 运算符 #

    算术运算符( + - * / %  ++  -- )

        ++ 或 -- 的使用规则 :

            如果 ++ (或者 --) 在前,先进行自加然后再进行计算获得值,如果在后,先进行计算再进行 ++ (--)自增或自减

    赋值运算符(  +=   -=    /=    *=   %=    =     <<=       >>=  &=   ^=  |= )

    关系运算符( > < >= <= == !=  )

    条件运算符 (三目(赋值)运算法) 

        关系运算 ? 满足: 不满足

        ps : 三目运算可以嵌套使用 (不建议使用,可读性会变差)

    逻辑运算符 (  && | | ! ) 

    位运算符 (  & | ! ^ 〜 <<   >> >>>   )

    instanceof 运算符 : 是否包含 

# java 的逻辑控制 #

    if 结构 

        针对关系表达式进行判断

        类型

            if (布尔表达式){

                满足时候执行

            }   

            if (布尔表达式){

                满足时候执行

            }else{

                不满足时候执行

            } 

            if (布尔表达式 A){

                A 满足时候执行

            }else if(布尔表达式 B){

                B 满足时候执行

            } else{

                A B  不满足时候执行

            }

    switch 开关语句

        在siwch 语句只可以使用 int char 枚举(jdk 1.5之后) String(字符串 jdk 1.7之后)

    switch(数据){

        case 数据1 :

            满足数据1

         break;

        case 数据2 :

            满足数据2

         break;

        defult :

            不满足数据1 和数据2

    }

    面试题目:

        break retrun continue 的区别:

    循环结构

        for 循环

        面试题:

            for 循环中初始化值和for循环之外定义

        增强for 循环

        while 循环

            do while 结构

            while 结构

    循环控制语句 : break retrun continue 

# 访问权限 #

    public private protected 默认

# 方法的定义与执行 #

    访问权限 返回值  方法名称(参数类型 参数){

        //如果有返回值,要有return

    }

# 方法的重载 #

    重载的方法和返回值类型没有关系只是和方法的参数有关系

# 方法的递归调用 #

    方法自己调用自己(删除文件夹需要删除文件,这个就是递归调用)

    如果使用递归调用容易造成内存溢出(栈溢出)

# 方法的可变参数 #

# 方法的重写 #

# java 的堆栈 #

相关文章

  • java基础,有你想要的

    1. java基础概念 在 Java 这门语言体系当中,最基础的部分就是 Java SE 部分,Java 的标准版...

  • Java面试

    一. Java基础部分.................................................

  • Java笔记目录

    一、Java基础部分 Java基础部分:关键字汇总[https://www.jianshu.com/p/cc6...

  • Java基础部分

    写在前面:www.jianshu.com/p/e17ab3849031 java基础——概述与准备工作:www.j...

  • java 基础部分

    # Java 的开发历史 # java 最初的时候是由sun(Sun Microsyst NetWok 中文名称是...

  • java基础部分

    1、面向对象特征有哪些方面? 封装:通常认为封装是把数据和操作数据的方法绑定起来,对数据的访问只能通过已定义的接口...

  • 软帝学院:80道java基础部分面试题(一)

    11道java基础部分面试题 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相...

  • 学习java的书籍

    Java基础部分 [JAVA核心技术 Head First Java 重构 Effective java 中文版(...

  • 从设计者的角度理解Java IO流

    摘要 Java I/O是Java技术体系中非常基础的部分,它是学习Java NIO的基础。而深入理解Java NI...

  • JAVA面试基础(总结了很多)

    最近帮整理了一份JAVA的面试基础,不过很基础后面还回继续更新。 java的专业技能 2.1 java的基础部分 ...

网友评论

      本文标题:java 基础部分

      本文链接:https://www.haomeiwen.com/subject/axvehctx.html