引言

本人系南京一小小学校的大三小小菜鸟,三年来学了很多杂七杂八的,也荒废了大量的时间,马上就要秋招了,之前也看了不少面试题,备选了一些简单的项目,看了不知多少本的几百页厚的各种知识的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 开始,接口也可以有默认的方法实现,使得修改接口的成本也变的很低。
     -重写与重载
         -重写(用于继承中)
             -子类方法的访问权限必须大于等于父类方法
             -子类方法的返回类型必须是父类方法返回类型或为其子类型
         -重载(在同一个类中)
             -方法名相同,参数类型,个数,顺序至少有一个不同
             -易错点:返回值不同,其他都相同不算重载

java基础篇一的更多相关文章

  1. java基础篇---I/O技术

    java基础篇---I/O技术   对于任何程序设计语言而言,输入输出(I/O)系统都是比较复杂的而且还是比较核心的.在java.io.包中提供了相关的API. java中流的概念划分 流的方向: 输 ...

  2. 金三银四跳槽季,BAT美团滴滴java面试大纲(带答案版)之一:Java基础篇

    Java基础篇: 题记:本系列文章,会尽量模拟面试现场对话情景, 用口语而非书面语 ,采用问答形式来展现.另外每一个问题都附上“延伸”,这部分内容是帮助小伙伴们更深的理解一些底层细节的补充,在面试中可 ...

  3. java基础篇---HTTP协议

    java基础篇---HTTP协议   HTTP协议一直是自己的薄弱点,也没抽太多时间去看这方面的内容,今天兴致来了就在网上搜了下关于http协议,发现有园友写了一篇非常好的博文,博文地址:(http: ...

  4. java基础篇---I/O技术(三)

    接上一篇java基础篇---I/O技术(二) Java对象的序列化和反序列化 什么叫对象的序列化和反序列化 要想完成对象的输入或输出,还必须依靠对象输出流(ObjectOutputStream)和对象 ...

  5. Java基础篇 - 强引用、弱引用、软引用和虚引用

    Java基础篇 - 强引用.弱引用.软引用和虚引用 原创零壹技术栈 最后发布于2018-09-09 08:58:21 阅读数 4936 收藏展开前言Java执行GC判断对象是否存活有两种方式其中一种是 ...

  6. java基础篇 之 构造器内部的多态行为

    java基础篇 之 构造器内部的多态行为 ​ 我们来看下下面这段代码: public class Main { public static void main(String[] args) { new ...

  7. 小白—职场之Java基础篇

    java基础篇 java基础 目录 1.java是一种什么语言,jdk,jre,jvm三者的区别 2.java 1.5之后的三大版本 3.java跨平台及其原理 4.java 语言的特点 5.什么是字 ...

  8. java基础篇1

    JAVA基础篇1 注释 单行注释 //这是一个单行注释,由两个斜杠组成,不能嵌套多行注释 多行注释 /*这是一个 多行注释 ,//里面不能嵌套多行注释, 但是可以嵌套单行注释*/ 文档注释 /**ja ...

  9. Java基础篇(JVM)——类加载机制

    这是Java基础篇(JVM)的第二篇文章,紧接着上一篇字节码详解,这篇我们来详解Java的类加载机制,也就是如何把字节码代表的类信息加载进入内存中. 我们知道,不管是根据类新建对象,还是直接使用类变量 ...

  10. Java基础篇(JVM)——字节码详解

    这是Java基础篇(JVM)的第一篇文章,本来想先说说Java类加载机制的,后来想想,JVM的作用是加载编译器编译好的字节码,并解释成机器码,那么首先应该了解字节码,然后再谈加载字节码的类加载机制似乎 ...

随机推荐

  1. 白话布隆过滤器BloomFilter

    通过本文将了解到以下内容: 查找问题的一般思路 布隆过滤器的基本原理 布隆过滤器的典型应用 布隆过滤器的工程实现 场景说明: 本文阐述的场景均为普通单机服务器.并非分布式大数据平台,因为在大数据平台下 ...

  2. 正则表达式 第六篇:调用CLR函数执行正则查询

    在SQL Server数据库中可以执行模糊查询,像like子句,和全文查询(Fulltext search),但是无法直接执行正则查找,SQL Server没有执行正则表达式的内置函数,但是我们可以创 ...

  3. RAM、ROM和fFLASH相关概念整理

    一:ROM ROM:Read Only Memory.只读存储器    是一种半导体内存,又叫做非挥发性内存.其特性是一旦数据被存储就无法再将之改变或删除.存储的数据不会因为电源关闭而消失.   二: ...

  4. 探索 Reflect.apply 与 Function.prototype.apply 的区别

    探索 Reflect.apply 与 Function.prototype.apply 的区别 众所周知, ES6 新增了一个全局.内建.不可构造的 Reflect 对象,并提供了其下一系列可被拦截的 ...

  5. [ch04-01] 用最小二乘法解决线性回归问题

    系列博客,原文在笔者所维护的github上:https://aka.ms/beginnerAI, 点击star加星不要吝啬,星越多笔者越努力. 4.1 最小二乘法 4.1.1 历史 最小二乘法,也叫做 ...

  6. 发送json给服务器

    - (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { // 1.URL NSURL *url = [NSURL URLW ...

  7. yarn和npm的对比以及yarn的使用

    0--前言 为什么要使用yarn,如果你从事前端开发有些年头了,那你肯定对npm又爱又恨,爱就不说了,恨嘛,就是NPM经常奇慢和卡顿,这还能忍,经常各种错误就没法忍了,尤其是他人创建的项目,自己在安装 ...

  8. 第三章 学习Shader所需的数学基础(4)

    法线变换 法线(normal),也被称为法矢量(normal vector).在以前我们已经讲过如何使用变换矩阵来变换一个顶点或方向矢量,但法线是需要我们特殊处理的一种方向矢量.在游戏中,模型的顶点往 ...

  9. 对于web前端的理解

    对于web前端的理解 其实写这篇文章的首要目的是为了准备一道面试题——你对前端的看法是什么?本文不会仅从技术角度去考虑这个问题,还会依据这个社会的变革去讨论这个问题.本文仅代表个人观点,不喜勿喷. W ...

  10. 一个普通程序员眼中的AQS

    AQS是JUC包中许多类的实现根基,这篇文章只是个人理解的产物,不免有误,若阅读过程中有发现不对的,希望帮忙指出[赞]! 1 AQS内脏图 ​  在开始了解AQS之前,我们先从上帝视角看看AQS是由几 ...