zoukankan      html  css  js  c++  java
  • 一.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.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')

    2.System与Runtime

    System  虚拟机系统相关

    Runtime  虚拟机运行时状态相关

    3.Math与Random

    Math:

    Math.ceil()  向上取整

    Math.floor()  向下取整

    Math.round()  加0.5向下取整

    Math.random()

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

    4.包装类

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

    (2)方法:

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

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

     

    5.日期时间类

    (1)Date类和Calendar类

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

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

             get(),add(),set()

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

    (2)JDK8的日期时间类

     

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

    DateFormat,SImpleDateFormat,DateTimeFormatter

     补充:

    1.switch条件语句

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

     

  • 相关阅读:
    oracle ebs应用产品安全性-交叉验证规则
    ORA-04021 timeout occurred while waiting to lock object
    ORA-04021:timeout occurred while waiting to lock object
    ebs双节点webservice部署问题
    ebs如何将客户化的PL/SQL程序发布到webservice
    adcfgclone.pl appsTier报错Unable to locate 'linkxlC' utility in path
    CS231n 作业1 SVM+softmax+两层神经网络
    ReVision: Automated Classification, Analysisand Redesign of Chart Images
    No.1 Extracting and Retargeting Color Mappings from Bitmap Images of Visualizations
    HankerRank刷题第四天(排序类型)Quicksort In-Place
  • 原文地址:https://www.cnblogs.com/midiyu/p/15115437.html
Copyright © 2011-2022 走看看