Java SE(1)
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)的更多相关文章
- 黑马程序员 ——Java SE(1)
----<a href="http://www.itheima.com" target="blank">Java培训.Android培训.iOS培训 ...
- 黑马程序员—— Java SE(3)
----<a href="http://www.itheima.com" target="blank">Java培训.Android培训.iOS培训 ...
- 黑马程序员—— Java SE(2)
----<a href="http://www.itheima.com" target="blank">Java培训.Android培训.iOS培训 ...
- Java SE(3)
紧接着上一期内容,继续来复习一下java基础的知识点,主要来复习一下有关线程的内容吧! 1.向上转型:Animal a = new Cat();//自动类型提升,猫对象提升为动物类型,但是特有的功能无 ...
- Java SE(2)
1.this的两种用法:(1)当成员变量和局部变量重名是,可以用关键字this来区分 .this代表对象,代表的是this所在函数所属对象的引用(哪个对象调用了this所在的函数,this就代表哪个对 ...
- 再回首,Java温故知新(一):Java概述
Java发展历程 Java的发展要追溯到1991年,Patrick Naughton(帕特里克·诺顿)和James Gosling(詹姆斯·高斯林)带领Sun公司的工程师打算为有线电视转换盒之类的消费 ...
- Java集合(1)一 集合框架
目录 Java集合(1)一 集合框架 Java集合(2)一 ArrayList 与 LinkList Java集合(3)一 红黑树.TreeMap与TreeSet(上) java集合(4)一 红黑树. ...
- 为什么你学不会递归?告别递归,谈谈我的一些经验 关于集合中一些常考的知识点总结 .net辗转java系列(一)视野 彻底理解cookie,session,token
为什么你学不会递归?告别递归,谈谈我的一些经验 可能很多人在大一的时候,就已经接触了递归了,不过,我敢保证很多人初学者刚开始接触递归的时候,是一脸懵逼的,我当初也是,给我的感觉就是,递归太神奇了! ...
- Java设计模式(1)工厂模式(Factory模式)
工厂模式定义:提供创建对象的接口. 为何使用工厂模式 工厂模式是我们最常用的模式了,著名的Jive论坛,就大量使用了工厂模式,工厂模式在Java程序系统可以说是随处可见. 为什么工厂模式是如此常用?因 ...
随机推荐
- WPF datagrid/gridcontrol 中选中多行,复制粘贴到excel或其他文本编辑器中
wpf中 data grid 开启自带的选中,然后复制,可以到excel中直接粘贴,在某些业务场景中很实用,方便.开启也很简单: SelectionMode="Row" 加上这个, ...
- 【记录】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官方文档解释: 如果定义了 ...
- 2018-2-13-win10-uwp-网络编程
title author date CreateTime categories win10 uwp 网络编程 lindexi 2018-2-13 17:23:3 +0800 2018-2-13 17: ...
- Spring Cloud服务保护
微服务虽然解决了传统单体式应用各个模块之间强耦合的缺点,但同时也引出了新问题,由于微服务各个服务之间是独立部署的,并且一般情况下一个服务往往会依赖多个其他服务,并且服务之间的调用更多的是依赖不稳定的网 ...
- docker提示没有开启转发解决方法
vim /usr/lib/sysctl.d/00-system.conf [root@t1 ~]# vim /usr/lib/sysctl.d/00-system.conf# Kernel sysc ...
- concurrent=false/true的定时任务job策略介绍
前言: 四种测试情况,cronExpression = 0/30 * * * * ? : 1,一个trigger,job设置的是每30s执行一次,实际需要75s:concurrent=false: 2 ...
- elasticsearch依赖的jackson-jar包与jboss依赖的jackson-jar包“版本”冲突
elasticsearch依赖的jackson-jar包与jboss依赖的jackson-jar包“版本”冲突,导致elasticsearch相关功能在本地tomcat服务器正常,但是部署到jboss ...
- spring中后台接收参数总结
@RequestParam注解用于将指定的请求参数赋值给方法的参数 @RequestMapping(“/login”) public void login(@RequestParam(name=“lo ...
- Magento开启模板路径提示
Magento的模板就好像搭积木一样,一个一个区块累加为一层,一层一层嵌套为一个整体,看起来结构相当复杂.虽然大部分模板文件路径在page.xml等文件中能找到,但是还是有部分是系统自带的.在上面并没 ...
- 【LeetCode 9】回文数
题目链接 [题解] 还是要注意,取反的时候,-2^31 取反的话会爆掉Int..(因为int的正数最多到2^31-1) [代码] class Solution { public: bool isPal ...