码迷,mamicode.com
首页 > 编程语言 > 详细

java基础知识

时间:2019-12-30 23:33:10      阅读:174      评论:0      收藏:0      [点我收藏+]

标签:imp   his   list   asc   run   就是   抽象方法   java程序   三元   

什么是java

Java是美国sun公司,在1995年推出的高级编程语言。所谓的编程语言,是计算机语言,使用编程语言对计算机下达命令,完成人们所需要的功能。

 

1、 字节和DOS命令

  字节:是计算机中最小的存储单位。   

  1byte = 8 bit  (1字节 = 8 位)

 

2、 java开发环境

  JVM(java Vritual Machine):java虚拟机

  是虚拟的用于执行bytecode字节码的,虚拟计算机。

 

  JRE(java Runtime Environment):java程序运行环境

  包含 JVM、运行程序必要的文件。

 

  JDK(java Development Kit): 程序开发工具包

  包含JRE、编译器、调试器等开发的工具。

 

   技术图片

 

  运行程序,只需要安装JRE就可以。

  开发程序,一定要安装JDK.

 

 

3、 标识符

  指程序中我们自己定义的内容。如:类名,变量名等。

 

  命名规则:

  可以包含a-z(大小写)、0-9、$、_(下划线)

       不能使用数字开头

       不能使用关键字。

 

  有大驼峰式 (ByuhGin)和小驼峰式(byuhGin)

 

4、 常量

  就是在程序运行的过程中,不会改变的量。

 

5、 数据类型

  基本数据类型:         (由小到大)

       整形数据      byte、short、int、long

       浮点型         float、double

       字符型         char

       布尔型         Boolean

 

  引用数据类型:

       字符串、数组、类、接口、Lambda

 

6、数据转换

  自动转换: 由小赋值给大的

  强制转换:  int  sum = (int) 100L

 

  byte、short、char可以进行数学运算,都会先提升为int类型,再运算。

  Boolean类型不能进行数据类型的转换。

 

7、ASCLL码表

  0 -----》 48, A ------》 65, a------》97

 

8、运算符

     简单运算符:+ 、-、*、 /、 %、

     赋值运算符:+=、-=、*=、/=、%=

     比较运算符:> 、<、 >=、 <=、 ==、 !=

     逻辑运算符:&&、||、 !

 

     三元运算符:

  数据类型  名称 = 判断条件 ? 表达式A : 表达式 B;

  (保证:

  1、      表达式A、B都需要满足前面的数据类型。

  2、      三元运算符的结果必须被使用。)

 

9、判断语句

  注意的是,break和continue。

  break是跳出当前内容。

  continue是跳出当前条。继续执行。

 

方法的重载

  方法是不能嵌套使用的。

  重载(ovreload):就是多个方法的名称一样,但是参数列表不一样。

          (参数个数、参数类型、参数类型的顺序)不一样。

 

数组的几种创建方法

  动态初始化数组:

  数据类型[ ] 数组名称 = new 数据类型[ 数组长度  ] ;

 

  静态初始化数组:

  数据类型[ ] 数组名称 = new 数据类型[ ] { 元素1,元素2 } ;

 

  省略式:

  数据类型[ ] 数组名称 = { 元素1,元素2  };

 

  索引值从0开始,到 数组长度-1 为止。

 

 

集合

ArrayList

  ArrayList<E> 名称 = new ArrayList<E>();

 

  注意:ArrayLiist的长度是可以随意变化的,

           泛型E,需要装的是全部统一的泛型类型。

           泛型只能是引用类型,不能是基本类型。

 

Map

 技术图片

 

 

Java内存

Java中的内存分布

  1、(Stack):存放的都是方法的局部变量。方法的运行一定在栈中运行

       局部变量:方法的参数,是方法{ } 中的局部变量

       作用域:一旦超出作用域,立刻从栈内存中消失。

 

  2、(Heap):new出来的东西,都在堆里面。(.class相关的信息

    堆里面的东西都有一个地址值:16进制

 

  3、方法区(Method Area):存储.class的相关信息,包含方法的信息。

  4、本地方法栈(Native Method Stack) 与操作系统相关

  5、寄存器(pc Register) 与cpu相关

 

 

异常

空指针异常:

  所有的引用类型都可以赋值一个null值,

  数组必须要new初始化才能使用其中的元素。

  如果在没有new的情况下,给数组赋值了一个null。那么就会出现空指针异常。

 

  空指针异常:NullPointerException

 

数组索引越界异常

  如果在访问数组的时候,访问的索引已经超出了数组的索引值,

  就会出现数组索引越界异常:ArrayListIndexOutOfBoundsException

 

成员变量和局部变量区别

局部变量:

      在方法的内部;

     只有方法可以使用,外面不能使用

     没有默认值,如果要使用,侧需要手动赋值。

     位于内存中。

     随着进栈产生,出栈消失。

 

成员变量

      在方法的外面

     整个类都可以使用

     如果没有赋值,会有默认值

     位于内存中

     随着创建对象产生,对象被垃圾回收而消失。

 

Static的讲解

Static的使用

  使用static修饰成员方法,就成为了静态方法。静态方法不属于对象。而是属于类

 

  无论是成员变量、还是成员方法,使用了static修饰,都建议使用   类名称点进行调用。

 

  注意:    静态不能直接访问非静态

                静态方法中,不能使用this

静态代码块

  Static{  静态内容 }

  静态代码块,执行唯一的一次。

  静态内容总优先于非静态内容。所以,静态代码块比构造方法先执行

 

Java的三大特征

封装

  就是将一些细节信息隐藏起来,不对外界开放

  方法就是一种封装。

  关键字Private 也是一种封装

 

继承

  使用extends 、implements 对父类进行继承。

  父类 (基类)、子类 (派生类)

 

继承中的重写

  就是和父类的方法名一样,参数列表也是一样。

  @Override 验证是不是有效的正确覆盖重写。

  就算不写,只要满足要求,也是正确的方法覆盖重写了。

 

继承中的构造方法的访问特点

  子类必须调用父类构造方法,不写侧赠送一个super();

  写了则用写的指定的super调用,super只能有一个,还必须是第一个

 

Super的三个用法

  在子类的成员方法中,访问父类的成员变量。

  在子类的成员方法中,访问父类的成员方法。

  在子类的构造方法中,访问父类的构造方法。

 

  Super和this两种构造调用,不能同时使用。

 

多态

  就是父类引用指向子类对象

 

  格式:父类名称  对象名 = new 子类名称();   或者

           接口类名称  对象名 = new 实现类名称();

 

  多态中的方法的访问,看new的是谁。就优先用谁,没有就向上找。

 

  访问:

       成员变量:编译看左,运行还是看左。

       成员方法:编译看左,运行看右。

 

 

向上向下转型

  向上转型:一定安全的,从小范围转向大范围

  向下转型: 范围小的转型范围大的。注意:在转型的时候,必须要规定,

      小范围的对象本来就是属于大范围的对象才行。

 

抽象

概念

  还不能确定具体是做什么的方法。

 

  规则:使用abstract关键字,不需要方法体

  如: public  abstract  void  eat(); 这就是一个抽象的方法。

 

  注意:抽象方法所在的类,一定需要是抽象类才行

 

  调用抽象类,不能直接调用

  需要创建实现类,重写抽象类里面的所有的抽象方法,并且需要打开方法体{  } 进行方法的设置。

  除非子类也是抽象类,就不用所有的抽象方法都重写。

 

 

特殊方法

this

  当局部变量和成员变量同名的时候,使用“就进原则”。

  先使用的是局部变量。访问成员变量就使用this.成员变量。

 

构造方法

  专门是用来创建对象用的。当我们new创建对象的时候,其实是在调用构造方法。

 

  注意:

    1、如果,没有编写构造函数,编译器会自动赠送一个构造方法

    2、不能返回一个具体的值

    3、构造方法也是可以重载的。

 

final的使用

  代表最终、不可改变(内容还是可以变的)

  对于类和方法来说,abstract和final不能同时使用

 

final四种用法:

  1、      修饰类

    规定:当前类不能有任何的子类。(太监类

    类中的所有成员方法不能进行覆盖重写

 

  2、      修饰方法

    规定:这个方法是最终的方法。也是不能被覆盖重写。

 

  3、修饰局部变量

    规定: 一次赋值,终生不变

    对于基本类型不变的是数据不变

    对于引用类型,不变的是地址值不变

 

  4、修饰成员变量

    因为成员变量有默认值,所以,final之后必须手动赋值

    要么,直接赋值,要么通过构造方法赋值。

    必须保证类中所有的重载的构造方法,都最终会对final的成员变量进行赋值

 

 

Java的四种权限

   技术图片

 

内部类

  就是事物的内部包含另外一种事物。

  成员内部类、局部内部类(包含匿名内部类)

  就是在类中嵌套一个类

 

  注意:内用外,随意访问,外用内,需要创建内部对象

  调用格式:

  外部类.内部类  对象名 = new 外部类().内部类();

java基础知识

标签:imp   his   list   asc   run   就是   抽象方法   java程序   三元   

原文地址:https://www.cnblogs.com/huangcan1688/p/12122080.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!