一.Java基础

基本语法,面向对象,异常,常用类

 

一.Java基本语法

1.

JavaSE:java最核心的类库,如:集合,IO,数据库连接,网络编程

JavaEE:Servlet,JSP,JavaBean,EJB,Web Service

2.java语言特点

面向对象,夸平台。解释性,安全性。简单性,支持多线程

3.JDK,JRE

JDK用于开发,JRE用于运行

JVM负责解释执行

 

 

4.java运行机制

(1)java程序运行,必须经过编译和运行两个步骤

       编译器                  解析器

原代码------->.class文件------>二进制机器码-->计算机

(2)java跨平台:一次编写,到处运行

java跨平台就是.class文件跨平台,但java虚拟机不是跨平台的,不同的操作系统需要使用不同的java虚拟机

5.java类库

基础类库:java包及其子包

扩展类库:javax包及其子包

java包下的常用包:

(1)java.lang 包含java中的基本类(包装类,String,Object)

(2)java.util包含大量工具类,集合类,如:Arrays,List,Set

(3)java.io 包含java输入,输出相关类和接口

(4)java.net 包含java网络编程相关类和接口

(5)java.sql 数据库编程

 

 

6.java数据类型:

基本数据类型:四类八种(整数型,浮点数型,字符型,布尔型)

引用数据类型:类,接口,数组,枚举(enum),注解(Annotation)

 

7.类型转换:自动类型转换(隐式),强制类型转换(显式)

(1)eclipse中出现的波浪线,框就是程序编译时异常

(2)类型转换异常:编译时异常 运行时异常(可以引入泛型避免ClassCast异常)

自动类型提升:用+=

 

 

 

 

 

8.变量的定义:声明,赋值

  常量(字面量):包括:整形常量,浮点型常量,字符常量,布尔常量字符串常量,NULL常量

 

9.运算符:

&:按位与,逻辑与

&&:短路与        |和||同理

 

10.

选择语句(条件语句):

switch:与if不同的是switch的控制表达式结果类型只能是:int,enum,String。不能是boolean类型

循环语句:

break和continue都是跳转语句,但:

  break:跳出当前循环,执行后面的代码

  continue:跳出本次循环,执行下一次循环

 

11.数组的常见操作

数组遍历,数组最值,数组排序

 

二.面向对象

1.

(1)面向对象四特性:抽风极多

(2)java内存分为两种:

栈内存:存放局部变量:基本类型变量和引用数据类型的引用

堆内存:存放由new创建的对象和数组

2.

this:指代当前对象

super:指代父类对象

 

3.类的继承

              Animal(name,shout(“动物发出叫声”))

      

      Dog(name,shout(“汪汪汪”))      Cat(name,shout(“喵喵喵”))

4.Object类的方法:

equals()

getClass()

hashCode()返回该对象的哈希码值。这个方法将对象的内存地址进行哈希运算,返回一个int类型的哈希值

toString()

finalize()

5.常量:final修饰的变量就是常量,被赋值后不能改变

6.抽象类和接口

  抽象方法:用abstract修饰,没有方法体

 抽象类:用abstract修饰的类。一个抽象类可以包含抽象方法,也可以不包含抽象方法

 接口:特殊的抽象类。

  jdk8之前:所有方法都是抽象方法,不能包含普通方法

  jdk8:除了抽象方法外,还可以有默认方法和静态方法(类方法)。  这两种方法可以有方法体

接口内可以定义常量(默认是:public static final 常量),必须初始化赋值

接口中抽象方法可以省略public abstract,默认添加

 

接口中包含三类方法:抽象方法,默认方法,静态方法

通过接口实现类的实例化对象可以访问:接口中的常量,接口实现方法,默认方法。而静态方法可以直接使用接口名.方法名调用

 

 

7.多态

(1)

是指相同引用类型变量在调用同一方法时所呈现出的不同形态。(相同引用类型变量可以指向不同实例对象)

靠的是:父类的引用变量可以指向子类的实例对象,

而程序调用的方法在运行期才动态绑定具体实例对象的方法

 

(2)多态性的前提:类的继承,方法重写

程序只有在运行时才能知道具体代表的是哪个子类对象(因为在编译时还没有创建对象,所以不知道是哪个)(编译期看起来调用的是父类对象的方法)

 

(3)向上转型:子类对象被当做父类对象使用  不需要任何显示声明

  但不能通过父类变量去调用子类特有的方法(在编译期就会报错)

   向下转型:如果要调用特有方法,可以向下转型。

  但必须转换为本质类型,否则转换时会出现错误(在运行期出错:ClassCastException)

 

8.内部类:成员内部类,静态内部类,局部内部类,匿名内部类

成员内部类:成员变量,成员方法,成员内部类

局部内部类:(方法内部类)和局部变量一样,在方法内

静态内部类:static修饰的成员内部类

匿名内部类:当方法参数是接口类型时,可以使用匿名内部类实现接口作为方法的参数

       new Animal() { }

9.Lambda表达式

Lambda表达式就是一个匿名内部类,可以简洁的实现一个接口中的方法实现

    (参数列表)——>{方法体}

函数式接口才可以使用Lambda表达式

 

四.异常

1.Error:系统错误。程序本身不能处理

   Exception:程序异常。程序本身可以处理

java开发中的异常处理,都是针对Exception及其子类的

 

 

 2.运行时异常一般是由于程序中的逻辑错误引起的

 

3.异常处理的两种方式

(1)异常捕获:使用try...catch语句对异常进行捕获处理

(2)异常抛出:使用throws关键字声明抛出异常,让调用者对其处理

 

 

垃圾回收

 

五.java常用类

 

1.包装类

 

(1)自动装箱,自动拆箱:基本数据类型变量<------->引用数据类型变量

 

(2)方法:

 

  包装类都有valueOf(String s)静态方法,将字符串---->包装类对象(除了Character)

 

  包装类都有parseXxx(String s)静态方法,将字符串---->基本类型的值(除了Character)

 

2.String与StringBuffer

String类:

  初始化:(1)String str=“hello”;(2)String str=new String(“hello”)

  如果+两边有一个是String类型,那么+表示字符串连接运算

  常见操作:

    (1)基本操作:

        字符串长度:length()

        指定位置的字符:charAt()

        字符或字符串的索引:indexOf(),lastIndexOf()

     (2)字符串的转化操作:

         转换成字符数组:toCharArray()

         将int值转换成字符串:vlaueOf()

       大小写转换:toUpperCase()

      (3)替换与去除空格操作

         replace(),trim()

      (4)判断操作

       str.startWith("St"),str.endWith("er"),str.contains("ar"),str.isEmpty(),str.equals(s2)

     (5)截取与分割

       str.subString(5),str.subString(5,7),str.split(" ")

StringBuffer类:

    添加:

      sb.append("abc"),sb.insert(3,"de")

    删除:

      sb.delete(3,7),sb.deleteCharAt(2),

    修改:

      sb.setCharAt(2,'c'),sb.replace(3,5,'de')

 

3.Math与Random

 

Math:

 

Math.ceil()  向上取整

 

Math.floor()  向下取整

 

Math.round()  加0.5向下取整

 

Math.random()

 

Random:在指定的范围内随机产生数字

 

 

4.System与Runtime

System  虚拟机系统相关

Runtime  虚拟机运行时状态相关

 

5.日期时间类

(1)Date类和Calendar类

    Date不常用了,两个功能:获取当前日期时间,时间戳

    Calendar:getInstance()获得当前时间的Calendar对象

         get(),add(),set()

         Calendar.MONTH()字段,0~11,因此获取当前月份要加1

(2)JDK8的日期时间类

 

6.格式化类。日期、时间格式器

DateFormat,SImpleDateFormat,DateTimeFormatter

 

 补充:

1.switch条件语句

switch中的break作用是跳出switch语句

 

posted @ 2021-08-08 17:17  midiyu  阅读(85)  评论(0编辑  收藏  举报