Java SE基础回顾

1.循环语句中的break是终止全部循环,跳出循环体;而continue是终止本次循环,跳执行下一循环

2.return语句有两个作用:返回值;结束方法的运行

3.对于java中面向对象的理解:以类的方式组织代码,以对象的方式封装数据。类就相当于模板,而对象就是依据模板所创作出来的。

4.局部变量需要初始化才能用,而全局变量系统会自动为其初始化。类=属性+方法
5.java中内存分析:(1)栈:存放局部变量(自动分配连续空间,后劲先出) (2)堆:防止new出来的对象(不连续) (3)方法区:(也是堆)存放的是类的代码信息、Static变量、常量池(字符串常量)

6.java中对于对象的操作实际是对对象地址的操作

7.构造器有称构造方法,其名称必须与相应类名一致。构造器也可重载 。重载有两同三不同原则,即同一个类中,同一个方法名;参数列表(类型、个数、顺序)不同

只有形参的名称不同,不构成重载。返回值不同也不构成重载

8.static关键字修饰的方法为静态方法,调用静态方法不需要创建对象,只需要用类名.方法名即可调用该静态方法。在普通方法中可以调用静态的属性跟方法,但是在静态的方法中不能调用非静态的属性。this是指调用当前方法的对象

9.Java中类只有单继承,java中的多继承通过接口来实现的

10.类之间存在6种关系:继承、实现、依赖、关联、聚合、组成

11.继承:泛化父类维护共性,细化子类添加特性

12.动态绑定:在运行时,JVM能够根据对象的类型绑定具体的方法。

13.动态方法调度:如果一种编程语言,想实现动态绑定,就必须具备某种机制,以便能够判断对象的类型,从而调用恰当的方法,这种机制称为动态方法调度。动态方法调度是实现Java运行时多态的基础

14.equals()方法比较的是两个变量引用的对象的内容是否相同;"=="比较的是两个变量是否引用同一个对象,侧重于空间是否相同,即比较的是两个对象在内存中的地址

15.关于字符串内容:当通过字符串常量定义方式(即String s=“abcd”)定义String类型变量时,系统会首先从字符串池(JVM维护着一个字符串缓冲区,叫做字符串池 )中查找相同的String对象,如果查到则使变量指向池中已有的对象,否则新建对象并放入池中。因此通过字符串常量方式定义的String变量,如果内容相同,则必然指向同一个对象。即String s=“abcd ”; String m="abcd";则二者指向同一个对象,但是如果用new String(“abcd”)方式定义的String对象,不会放入池中,每次都会重新构造新的对象。

16.抽象类:只定义类的“骨架”,对其共同行为提供规范,但是并不实现,而是将具体实现放到子类中去完成。这种“骨架类”叫做抽象类,用abstract关键字修饰

17.抽象类的3个特点:(1)抽象方法没有方法体,即未实现(abstract放在class前,一个抽象类可以含有多个抽象方法,也可以含有已经实现的方法)

(2)不能实例化抽象类,即不能为抽象类分配具体的空间  (3)一个类在继承抽象类时,如果没有实现父类所有的抽象方法,那么该类也必须定义为抽象类。

18.接口:引入接口,是为了解决类之间单一继承的缺陷。接口是抽象类的进一步强化,没有方法体,不能直接实例化。对接口的引用相当于接口这个父类去调用子类的方法,即父类引用指向子类对象。一个类可以实现多个接口,从而弥补java单一继承的缺陷。一个类实现接口时,必修实现该接口的定义的所有方法,除非该类定义为抽象类。

19.内部类有:成员内部类、局部内部类、静态内部类、匿名内部类

20.java中的异常分为:java.lang.error与java.lang.Exception

异常是指程序在运行期间可能出现的错误。异常分为非检查型异常(RuntimeException及其子类)、检查型异常

21.异常处理机制:(1)捕获异常  (2)声明抛出异常

22.安排catch语句的顺序时,首先应该捕获最特殊的异常,然后在一般化,即先catch子类,然后在catch父类。先后顺序不符,会发生错误

不管有无异常发生,必须执行的代码finally关键字修饰,且finally不能单独使用,必须和try结合使用。try-finally、try-catch-finally

23.throw语句是编写在方法中,而throws语句使用在方法签名之后。同一方法中,throws抛出的类型范围比throw抛出的对象类型范围大或者相同

24.泛型:是为了解决强制类型转换时,在编译时编译器可能不提示错误,但在运行时会出现异常,这一安全隐患。

25.使用泛型的好处:(1)在编译期间检查类型,捕捉类型不匹配错误 (2)所有的强制转换都是自动和隐式的,提高代码重用率。

26.泛型的本质:是参数化类型,即所操作的数据类型被指定为一个参数,可以用在类、接口、方法的创建中。

27.数组容器(遇到容器必须重点学)

格式1 int[] array = new int[3];//需要一个容器,但是不明确容器的具体数据

格式2 int[] array = new int[]{0,1,3,5,89};//初始化容器,存储已知的数据 或 int[] array = {89,20,2,45,9};

对于数组的操作最基本的就是存、取。核心思想是:对角标的操作,数组中最后一个数的角标为array.length-1

28.面向对象:先找问题的对象,如果没有就去创造它。有对象找对象,没对象造对象,紧接着维护对象之间的关系。类与对象之间的关系:类是事物的描述。对象:该类的实例,在java中通过new来实现。堆中封装数据,对象也是为了封装数据。当调用方法时,方法要进栈,这时如果方法中定义了局部变量,如a=10;在堆中也定义了a=4;这时会优先选栈中的局部变量;如果栈中没有a=10,则去堆中调用a=4。

29.当对象对方法仅进行一次调用时,就可以简化成匿名对象

30.封装:Encapsulation隐藏对象的属性和实现细节,仅对外提供公共访问方式。私有的private的东西只能在本类中有效。在方法中对给定的数据进行逻辑判(封装的作用)

31.构造函数:构建对象时调用的函数 ,作用:可以给对象进行初始化 。创建对象都必须要通过构造函数初始化

32.一般函数与构造函数的区别:构造函数:对象创建时就会调用与之相应的构造函数,对对象进行初始化。会调用,且只调用一次(仅对于一个对象来说)

一般函数:对象创建后,需要函数功能时才调用。对象创建后,可以被调用多次。

33.什么时候定义构造函数:在描述事物时,该事物一存在就具备的一些内容,这些内容就都定义在构造函数中。

一个类中可以有多个构造函数,分别对不同的对象进行不同的初始化。多个构造函数在同一个类中出现,只有一种方式——重载

Java SE(1)的更多相关文章

  1. 黑马程序员 ——Java SE(1)

    ----<a href="http://www.itheima.com" target="blank">Java培训.Android培训.iOS培训 ...

  2. 黑马程序员—— Java SE(3)

    ----<a href="http://www.itheima.com" target="blank">Java培训.Android培训.iOS培训 ...

  3. 黑马程序员—— Java SE(2)

    ----<a href="http://www.itheima.com" target="blank">Java培训.Android培训.iOS培训 ...

  4. Java SE(3)

    紧接着上一期内容,继续来复习一下java基础的知识点,主要来复习一下有关线程的内容吧! 1.向上转型:Animal a = new Cat();//自动类型提升,猫对象提升为动物类型,但是特有的功能无 ...

  5. Java SE(2)

    1.this的两种用法:(1)当成员变量和局部变量重名是,可以用关键字this来区分 .this代表对象,代表的是this所在函数所属对象的引用(哪个对象调用了this所在的函数,this就代表哪个对 ...

  6. 再回首,Java温故知新(一):Java概述

    Java发展历程 Java的发展要追溯到1991年,Patrick Naughton(帕特里克·诺顿)和James Gosling(詹姆斯·高斯林)带领Sun公司的工程师打算为有线电视转换盒之类的消费 ...

  7. Java集合(1)一 集合框架

    目录 Java集合(1)一 集合框架 Java集合(2)一 ArrayList 与 LinkList Java集合(3)一 红黑树.TreeMap与TreeSet(上) java集合(4)一 红黑树. ...

  8. 为什么你学不会递归?告别递归,谈谈我的一些经验 关于集合中一些常考的知识点总结 .net辗转java系列(一)视野 彻底理解cookie,session,token

    为什么你学不会递归?告别递归,谈谈我的一些经验   可能很多人在大一的时候,就已经接触了递归了,不过,我敢保证很多人初学者刚开始接触递归的时候,是一脸懵逼的,我当初也是,给我的感觉就是,递归太神奇了! ...

  9. Java设计模式(1)工厂模式(Factory模式)

    工厂模式定义:提供创建对象的接口. 为何使用工厂模式 工厂模式是我们最常用的模式了,著名的Jive论坛,就大量使用了工厂模式,工厂模式在Java程序系统可以说是随处可见. 为什么工厂模式是如此常用?因 ...

随机推荐

  1. LinkButton(按钮)组件

    一.//class加载方式 <div id="pos" class="easyui-linkbutton">按钮</div> 二.js加 ...

  2. 【记录】Nginx错误could not build the server_names_hash you should increase server_names_hash_bucket_size: 32

    今天遇到这个错误,现记录下解决方案: 在nginx的配置文件的http段中增加如下配置: server_names_hash_bucket_size 64; 下面是nginx官方文档解释: 如果定义了 ...

  3. 2018-8-10-win10-uwp-dataGrid

    title author date CreateTime categories win10 uwp dataGrid lindexi 2018-08-10 19:16:51 +0800 2018-2- ...

  4. MySQL练习题--sqlzoo刷题2

    SELECT from Nobel Tutorial 1.Change the query shown so that it displays Nobel prizes for 1950. SELEC ...

  5. redis配置篇

    配置 Redis的配置信息在/etc/redis/redis.conf下. 查看 sudo vi /etc/redis/redis.conf 核心配置选项 绑定ip:如果需要远程访问,可将此⾏注释,或 ...

  6. ES5的 forEach, map 方法的实现

    如果浏览器不支持forEach,map方法, 要我们自己封装一个, 该怎么操作呢? 1. forEach Array.prototype.forEach = function(fn) { if (th ...

  7. Vue中的作用域插槽

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  8. SpringCloud---分布式服务跟踪---Spring Cloud Sleuth

    1.概述 1.1 为什么要用到服务跟踪? 随着业务的发展,系统规模也会变得越来越大,各服务之间的调用关系也变得越来越错综复杂: 通常一个由客户端发起的请求   在后端系统中会经过多个不同的微服务调用  ...

  9. Vulhub-漏洞环境的搭建

    安装Docker #安装pip curl -s https://bootstrap.pypa.io/get-pip.py | python3 #安装最新版docker curl -s https:// ...

  10. Java——异常的基本概念

    1.异常的基本概念 1.1什么是异常 在使用计算机语言进行项目开发的过程中,即使程序员把代码写得尽善尽美,在系统的运行过程中仍然会遇到一些问题,因为很多问题不是靠代码能够避免的,比如:客户输入数据的格 ...