zoukankan      html  css  js  c++  java
  • java基础篇一

    引言

    本人系南京一小小学校的大三小小菜鸟,三年来学了很多杂七杂八的,也荒废了大量的时间,马上就要秋招了,之前也看了不少面试题,备选了一些简单的项目,看了不知多少本的几百页厚的各种知识的pdf电子书,发现基础还有很多不是很牢固,有的地方领会起来很是难受。现在,决定回归一波基础,从最简单的开始。我将会坚持每天学习一点点,并写好笔记并发布上来。虽然有些可能只是提纲挈领,但还是希望我的这个复习计划可以帮到一些人,有错误的地方也希望能多多指正^_^正春华枝俏,待秋实果茂,与君共勉

    一、数据类型


       -8种基本数据类型,占多少字节,boolean不确定
       -缓存池
          -new Integer(123) 与 Integer.valueOf(123) 的区别
          -在 Java 8 中,Integer 缓存池的大小默认为 -128~127。

    二、String


       -String 被声明为 final,因此它不可被继承。
       -不可变的好处
          -1. 可以缓存 hash 值
          -2. String Pool 的需要
          -3. 安全性
          -4. 线程安全
       -String, StringBuffer and StringBuilder
          -1. 可变性
         -String 不可变
         -StringBuffer 和 StringBuilder 可变
          -2. 线程安全
         -String 不可变,因此是线程安全的
         -StringBuilder 不是线程安全的
         -StringBuffer 是线程安全的,内部使用 synchronized 进行同步
       -String.intern()
         -使用 String.intern() 可以保证相同内容的字符串变量引用同一的内存对象。
        

    三、运算


       -参数传递
         -Java 的参数是以值传递的形式传入方法中,而不是引用传递
       -float 与 double
         -1.1 字面量属于 double 类型,不能直接将 1.1 直接赋值给 float 变量,因为这是向下转型。Java 不能隐式执行向下转型,因为这会使得精度降低。
             // float f = 1.1;
          1.1f 字面量才是 float 类型。
             //float f = 1.1f;
       -类型转换
       -java向上造型和向下造型
         -1.父类引用能指向子类对象,子类引用不能指向父类对象;
         -2.向上造型:父类引用指向子类对象,例如:Father f1 = new Son();
         -3.向下造型:把指向子类对象的父类引用赋给子类引用,需要强制转换,
       -switch
         - int i = 5;
             switch(i){
             case 0:
                 System.out.println("0");break;
             case 1:
                 System.out.println("1");break;
             case 2:
                 System.out.println("2");break;
             default:
                 System.out.println("default");break;
             }
            

    四、继承

      
         -访问权限
             -访问权限要满足 里氏替换原则   
         -抽象类与接口
             -抽象类和普通类最大的区别是,抽象类不能被实例化,需要继承抽象类才能实例化其子类。
             -接口的方法默认都是public,不允许定义为private或者protected;
              接口的字段默认都是public,static/final,不允许定义为private或者protected
         -抽象类与接口的比较
             -从设计层面上看,抽象类提供了一种 IS-A 关系,那么就必须满足里式替换原则,即子类对象必须能够替换掉所有父类对象。而接口更像是一种 LIKE-A 关系,它只是提供一种方法实现契约,并不要求接口和实现接口的类具有 IS-A 关系。
             -从使用上来看,一个类可以实现多个接口,但是不能继承多个抽象类。
             -接口的字段只能是 static 和 final 类型的,而抽象类的字段没有这种限制。
             -接口的成员只能是 public 的,而抽象类的成员可以有多种访问权限。
         -抽象类与接口的使用选择
             -使用接口:
                 -需要让不相关的类都实现一个方法,例如不相关的类都可以实现 Compareable 接口中的 compareTo() 方法;
                 -需要让不相关的类都实现一个方法,例如不相关的类都可以实现 Compareable 接口中的 compareTo() 方法;
             -使用抽象类:
                 -需要在几个相关的类中共享代码。
                 -需要能控制继承来的成员的访问权限,而不是都为 public。
                 -需要继承非静态和非常量字段。
             -在很多情况下,接口优先于抽象类,因为接口没有抽象类严格的类层次结构要求,可以灵活地为一个类添加行为。并且从 Java 8 开始,接口也可以有默认的方法实现,使得修改接口的成本也变的很低。
         -重写与重载
             -重写(用于继承中)
                 -子类方法的访问权限必须大于等于父类方法
                 -子类方法的返回类型必须是父类方法返回类型或为其子类型
             -重载(在同一个类中)
                 -方法名相同,参数类型,个数,顺序至少有一个不同
                 -易错点:返回值不同,其他都相同不算重载

  • 相关阅读:
    PAT1124:Raffle for Weibo Followers
    Pat1071: Speech Patterns
    PAT1032: Sharing (25)
    Pat1128:N Queens Puzzle
    C++相关:C++的IO库
    Pat1108: Finding Average
    PAT1070:Mooncake
    乐港游戏校招面试总结
    并发编程005 --- future &&futureTask
    并发编程004 --- 线程池的使用
  • 原文地址:https://www.cnblogs.com/yonyong/p/9526232.html
Copyright © 2011-2022 走看看