美文网首页
java_小结

java_小结

作者: 她与星河皆遗憾 | 来源:发表于2019-04-02 19:36 被阅读0次

    Java的特点

    跨平台:一次编译,到处运行
    半编译半解释:JVM把 .java编译成一种中间格式的字节码文件 .class(半编译),这些字节码文件在JVM上运行,JVM在将其逐行翻译给底层平台(半解释)
    面性对象四大特性:

    继承:也称泛化,一个类可以从一个现有的类中派生出来,派生出来的类称为子类,原有的类称为父类,子类拥有父类所有的属性和方法,除了构造器和私有成员,继承是代码重用的一种重要手段,也是实现开闭(对拓展开放,对修改关闭)原则的基础

    封装:用不同的访问权限修饰符(public,protected,默认的,private),将代码组织到一个类中的过程,控制其访问范围

    多态:是一种编程策略,要满足三个前提:有泛化关系,有父类引用指向子类对象,有方法的重写,多态的作用是解耦(高内聚,低耦合),提高维护性,节约成本
    多态存在的三个必要条件:
    1.要有继承,或实现
    2.要有重写
    3.父类引用指向子类对象

    抽象:将事物抽象成概念模型,类,抽象类,接口,属性都是抽象的体现

    标识符和变量常量

    类名:每个单词首字母大写,其余字母小写
    包名:全部小写
    变量和方法名:第一个单词小写,其余单词首字母大写,其余字母小写
    常量:全大写
    

    数据类型
    一.基本数据类型:

    整型:byte(1),short(2),int(4),long(8)
    浮点型:float,double
    字符型:char(2)加 ' '
    布尔值:boolean

    二.引用数据类型:

    类
    数组
    接口
    

    运算符

    +(除了运算还能拼接字符串),-,,/(整型与整型相除,结果取整)
    +=,-=,
    =,/=,%=;
    ++,--;
    表达式1?表达式2:表达式3
    &&(与),||(或),!(非)
    &,|,^,<<,>> a<<b = a*2^b

    经典题目:
    ①交换两个变量;
    ②判断闰年、平年;
    ③int x=0;
    for(int i=0;i<100;i++){x=x++;}
    结果:x=0
    ④按位与或(和)逻辑与或区别?
    逻辑与或有短路
    按位与或能参与位运算

    循环

    while,do...while,for
    经典题目:
    ①while与do...while的区别?do...while至少执行一次,因为是条件
    ②重点:2.一小球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?

    Double height=100,long=100,h=0;
       For(i=1;i>=10;i++){
           height=height/2;
    }
    For(j=1;j>10;j++){
    h=100+h+long;
           long=long/2;
    }
    System.out.println(“第十次高度为:”+height);
    System.out.println(“十次的距离为:”+h);
    

    ③1+2+3+....+10的和
    ④1!+2!+3!+....+10!的和
    ⑤冒泡排序
    ⑥100以内所有质数

    通过下标访问数组

    arr[0],长度为n的数组,下标最大值为n-1
    常见的异常:ArrayIndexOutOfBoundsException
    栈内存中保存的引用 (引用数据类型可以赋值为null),元素都保留在堆中
    遍历:

    int arr[]={1,2,3,4,5};
    for(int num : arr){
       System.out.println(num);
    }
    int arr1[][]={{1,2,3},{4,5,6},{7,8,9}};
    for(int i=0;i<arr1.length;i++){
        for(int j;j<arr1[i];j++){
            Sysotem.out.println(arr1[i][j]);
        }    
    }
    

    方法

    public,private,默认,protected

    public int getNum(){
        return 1;}
    方法调用
    Demo d = new Demo();
    d.getNum();
    

    构造器:
    Demo1 d = new Demo1();
    方法名必须和类名必须一致
    没有返回值这一概念
    重载:同个类中,同名不同参的方法

    类和对象:
    Scanner scan = new Scanner(System.in);
    int num = scan.nextInt();

    Demo d[] = new Demo()[3];
    static
    属性,方法,方法块能够直接用类名调用
    静态方法只能调用静态的成员
    单例模式
    私有构造器

    继承 extends

    public class Father{}
    public class Son extends Father{}
    main (){ Son s = new Son();}
       子类的实例化过程,子类构造器会默认先调用父类的无参构造器先生成父类对象,然后再创建子类 对象,
    若父类没有无参构造器,会编译出错,父类可以补无参构造器,或在子类构造器中用super调用父类有参构造器
    

    重写:子类中与父类方法同名同参同返回值类型

    多态

    接口:interface,不能实例化抽象方法 implements
    抽象类:adstract,不能实例化,可以有抽象方法

    public abstract class demo{
        public adstract void test(); }
    

    包装类:
    Integer Character
    包装类.ValueOf(String)
    包装类.parse XXXX
    String,StringBuffer,StringBuilder
    Math:random,ceil,floor
    Date:Date date = new Date(); date.getTime();//从1970年到现在所经历的毫秒数
    SimpleDateFormat

    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        sdf.format(Date);  //Date转Sring类型
        sdf.parse(String);  //S听转Date类型
    

    经典题目:①查单词:(substring,indexOf)②两日期字符串间隔多少天

    集合

    colliction
            List
                  ArrayList
                  lenkedList
                  Vector
            Set
                  HashSet
    add()
    Map:键值对
            HashMap       允许null作为键值        线程不安全
            HashTable     不允许                  线程安全
    put()
    

    相关文章

      网友评论

          本文标题:java_小结

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