JAVA知识点汇总

关键字:对于编译器来说有特殊含义的单词

保留字:java已经征用了,但是,没有具体含义的单词,要用还没用的字,以后是否使用未定  比如:goto等

标识符:java中的包名,类名,方法名,变量名,参数名统称标识符(自己起的名都是标识符)

规则:元素必须是数字,字母,下划线,$,其中数字不能开头                                                                                      

  规范:

类名:每个单词首字母大写 例如:

方法名,变量名,参数名:一个单词首字母小写;多个单词,第一个单词首字母小写,后面每个单词首字母大写.例如:getName

包名:每个字母都小写,中间用.分割  例如:com.neudeu.demo

  常量名:每个字母都大写 例如:PI

* 变量:随时可以变化的量

* 定义变量:

 数据类型  变量名 = 值;

* 第一种    1.先声明

* 2.在赋值

* 第二种  1.声明并且赋值

* 常量:永远不变的量

数据类型:

* 基本数据类型

* 整数型:byte(1字节)  short(2字节)  int(4字节)(默认)  long(8字节,定义long时默认将值赋给了int,在值后面加L即可)

* 浮点型:float(单精度浮点)  double(双精度浮点)

* 字符型: char 16字节 范围(0~65535) 通常情况是单引号中放一个字符,不放不行,放空格可以

* 布尔型:只有两个值 true  false

* 引用数据类型

* 数组

* 类

* 接口

运算符和表达式

* 赋值运算符:=;+=;-=;*=;/=;%=

*

* 算术运算符:+,-,*,/,%,++,--

* 一元运算符:只有一个操作数的运算符  +4  -9  -7

* 二元运算算:有两个操作数的运算符  2+5  2*8

* /:除法中,除号两端都是整数,结果为向下取整的整数;两端有一端是小数,结果正常数学运算

* %:结果取余数:结果取余数,结果的正负号和被除数一样

* ++,--:变量在前时,先赋值在运算,先把c的值赋给了d,所以d=2;c在自增1,所以c=3

*         变量在后时,先运算在赋值,c2先增1在赋值给d,所以d=2;c2=2;

关系运算符(比较运算符)

* ==  !=  >=  <=  <  >

*

* 逻辑运算符

* &&(短路效应)  ||(短路效应)  !

*

* &&和&的区别**面试题**

* &&:逻辑运算符,只能参与逻辑运算,具有短路效应,开发常用

* &:位运算符,不仅能参与逻辑运算还能参与位运算,不具备短路效应,开发不常用]

*

* 什么是短路效应

:如果符号左面表达式的结果可以作为整个表达式的结果,符号右边的表达式不执行.

 (&&中,如果左面结果为false,发生短路效应,右面不用看)

三元运算符

* 表达式?值1:值2;

* 如果表达式为真 ,执行值1;表达式为假,执行值2

数据类型转换

* 自动类型转换:小-->大  大小为数据类型的表数范围

* 强制类型转化:大-->小  要有强制的动作      小变量=(目标类型)大变量




swith:条件语句格式

  swith(表达式){类型(byte,short,int,char,String)

case 值1:

  执行语句;

  break;

  ...

    default:

    执行语句:

    break;

    }

  注意:case和default书写位置上没有要求,在执行上是有要求的,先执行case再执行default

  case 后面的值不能重复,case后面的值不能是变量

常用功能:

  随机数:Random:

作用:产生随机数

用法:

  1.导包

2.固定写法

常用功能:

键盘录入Scanner(扫描器)

作用:将数据通过键盘录入到程序中

做法:

  1.导包

2.固定写法

循环中断机制:

break和continue的区别**面试题**

break:结束整个循环,可以用在switch上

continue:结束本轮循环,进入下一轮,只能用在循环中

条件语句:满足就执行不满足不执行

单一条件:if语句

二选一条件:if else 语句

三选一或多轩一:if  elseif  else语句

数组:

可以存放数据的容器,类型一致,长度固定,不可改变

定义数组:

按照长度 1.先声明在赋值

int []arr=new int[3];

  2.声明并赋值

  按照内容:长度是元素的个数


方法的定义:

完成某个功能的一组语句

方法定义语法

  1.有参数有返回值

  2.有参数没有返回值

  3.没有参数有返回值

  4.没有参数没有返回值

递归方法:

一个方法体内调用它自身的方式

方法重载:

在一个类中,允许同时存在一个以上的同名方法,这些方法之间的关系称作重载

* 方法重载的规则:

* 方法名相同

* 参数列表不同(个数,类型,顺序不同)

* 与返回值类型无关

类:把相似的对象划归为一个类,抽象的概念

* 类里面包含:属性(事务特征:身高姓名性别)  方法(动作,行为:跑跳唱)  嵌套类(了解)  代码块(了解)

*

* 属性和局部变量对比:

* 位置:

* 属性:定义在类中,方法外;局部变量:定义在类中,方法体中

* 位置和使用顺序:

* 属性:定义在方法体上下都可以;局部变量:必须在使用之前声明并赋值才能使用

* 默认值:

* 属性:有默认值;局部变量:没有默认值

* 重名:

* 属性:可以重名;局部变量:可以重名  通过this关键字区分,this后面是属性

创建对象:类名  对象名  =  new 类名()

* 访问属性:对象名.属性

* 访问方法:对象名.方法名

*

*

* 匿名对象

:没有对象名的对象

* new 类名();

* 什么时候使用:当方法或者属性只被访问一次的时候使用匿名对象

构造方法:

又称构造器,是用来创建对象的,还可以给属性赋值

* 书写构造方法的特点:

* 构造方法名必须与类名相同

* 不含返回值类型,也没有void

* 不能在方法中用return语句返回一个值

* 使用构造方法:创建对象

* 构造方法名  对象名  =new  构造方法名();

*

* 注意:如果没有手动给出无参数构造方法,系统会,默认提供一个无参数构造方法,

*        一旦手动给出了构造方法,系统将不在提供默认的无参数构造方法

*        普通方法不能创建对象*它有默认的构造方法

*        构造方法才能创建对象*

静态:static修饰符

* 可以修饰:属性(静态属性)

* 方法(静态方法)

* 代码块 (静态代码块)

* 访问静态动态:属性和方法也可以通过对象的形式访问,通常不推荐

* 属性:类名.属性

* 方法:类名.方法

* 静态代码块:在创建对象之前,由系统默认调用.只执行一次

* 细节注意:

* 被static修饰的内容(静态的)会随着类的加载而加载,优先于对象.它的内容被所有对象所共享

*

* 静态的只能访问静态的,不能访问非静态的(类是静态的,对象是非静态的,因为有了类不一定有对象,但是有了对象就一定有类)

* 非静态的既能访问静态的,还能访问非静态的

继承:

子类自动拥有父类的属性和方法,关键字extends,之类也可用有自己的属性和方法

写法:子类 extends 父类

java中只支持单继承,不支持多继承

this:当前类的对象

* this():访问本类的无参数构造方法,系统不会默认给出,需要是必须写出

* this(参数):访问本类的有参构造方法

* this访问构造方法的时候必须放在构造方法第一行

*

* this和super访问构造方法不能共存

子类实例化过程:子类实例化时先实例化父类,在实例化子类

*super:父类的对象

* super():访问的是父类无参构造方法,即使不写super(),系统也会默认调用

* super(参数):访问的是父类的有参构造方法,需要在写

* super访问构造方法的时候必须放在子类构造方法的第一行

封装:隐藏内部实现细节,对外提供公共的访问方式

*

* private:私有访问权限,只能在该类的内部访问

*

* default:默认访问权限,只能被本类和同一包的类访问;不同的包不能访问,导包也不行

*

* protected:受保护的访问权限,只能被本类和同一包的类访问;不同包的子类可以访问,不同包的其它类不能访问

*

* public:公共访问权限,可以访问所有的类

方法覆盖:

又称重写.子类将父类的方法进行改造

*

* 前提:具备继承或者实现的关系

*

* 规则:方法名相同

* 参数列表相同(个数,顺序,类型)

* 返回值类型相同

* 子类的访问权限必须大于或等于父类的访问权限

*

*

* 抽象:abstract

* 可以修饰方法:抽象方法

* 抽象方法只有方法声明没有具体实现(没有花括号,,没有方法体),具体的实现需要子类帮他完成

* 可以修饰类:抽象类

* 包含抽象方法

* 包含非抽象方法

* 特殊情况,全部是抽象方法.全部是非抽象方法(抽象类不能创建对象,如果有不允许类创建对象的情况,可以联想抽象类的定义)

*

* 总结:有抽象方法的类一定是抽象类,抽象类中不一定有抽象方法

*         抽象类不能创建对象,但是有构造方法,构造方法是用来给属性赋值的

*

* 注意:abstract不可以跟和以下共存: private:只能访问本类,抽象类需要子类

*       static:被static修饰的方法不能创建对象

      final:被final修饰的没有子类,抽象类需要子类

*

*

* final:最终关键字

* 被它修饰的类不能被继承

* 被它修饰的方法不能被重写

* 被它修饰的量是一个常量不能被赋值

接口:关键字interface  实现接口:子类  implements 接口

* 接口不能创建对象,而且没有构造方法

* 常量:

* 固定修饰符号public static final默认会写

*

* 抽象方法:

* 固定修饰符号public abstract默认会写

*

* 默认方法:default  返回值类型  方法名()

单例模式:

保证一个类只有一个实例(对象),并且提供公共地访问方式

public class Singleton {

//在自己内部定义自己的一个实例,只供内部调用

private static Singleton instance = new Singleton();

private Singleton(){

//do something

}

//这里提供了一个供外部访问本class的静态方法,可以直接访问

public static Singleton getInstance(){

return instance;

}

}

关系

* 类和类:单继承

* 类和接口:多实现

* 接口和接口:多继承

*

* 接口和抽象类的区别

* 1.一个类能实现多个接口,但是只能继承一个类

* 2.抽象类的方法可以用abstract和public和protected修饰;而接口的抽象方法默认为public abstract修饰

* 3.抽象类的方法可以是抽象方法也可以是普通方法,有构造方法;接口的方法有抽象方法和默认方法,没有构造方法

* 4.抽象类的属性可以用不同修饰符修饰;接口的属性用public static final来修饰,它是常量

* 5.抽象类可以继承抽象类,也能实现接口,接口只能继承接口

多态:不同的对象对同一行为做出不同的响应

* 多态的三个必要条件:

* 1.必须要有继承和实现的关系

* 2.必须方法重写

* 3.父类引用指向子类对象

引用数据转换:

* 上溯造型(向上转型):子类转化为父类  小-->大

* 下塑造型(向下转型):父类转化成子类  大-->小 有强制的动作:(目标类型)变量

没有经过上溯造型的,不可以直接下塑造行






异常:凡是JVM中非正常的状况,我们都称为异常

*

* Throwable异常:

* Error:错误,灾难性问题,解决不了

* Exception:异常

* RuntimeException:非检查性异常(运行之后出现异常,可解决可不解决)

* IOException:检查性异常(解决)

*

* 所谓非检查性异常和检查异常指的是:编译器是否检查

*

* 异常处理的两种方式:

* 自行处理:try(可能出现异常) catch(捕获并且处理异常),下面代码正常运行,不写的话有异常的话代码就不运行了

* 回避异常:throws

*

* throws和throw的区别

* 定义的位置:

* throws:定义在方法体上

* throw:定义在方法体内

* 含义:

* throws:抛出异常,表示该方法中有异常

* throw:抛出异常,表示该方法中产生了一个异常

*

*

* 常见的五个异常:

* 1.算法错误异常

* 2.数组越界异常

* 3.空指针异常

* 4.类型转换异常

* 5.数据库操作异常

----------------------------------------------------------------------------------------------------------------------------

Object类是所有类的超类,唯一一个没有父类的类

*

* ** ==和equals的区别 **(面试题)

* ==既可以比较基本数据类型也可以比较引用数据类型,基本数据类型比较的是值,引用数据类型比较的是地址值

* equals只能比较引用数据类型,重写之前比较的的是地址,重写后比较内容

**字符串区别**面试题

*

* String:内容不可变的字符串

*

* StringBuffer和StringBulider:内容可变的字符串

*

* StringBuffer和StringBulider的区别

*

* StringBuffer类是线程安全的;

*

StringBuilder类是线程不安全的。

StringBuffer在JDK1.0中就有,而StringBuilder是在JDK5.0后才出现的。

StringBuilder的一些方法实现要比StringBuffer快些。

*

* 静态方式创建字符串和动态方式创建字符串的区别

* 静态:使用静态方式创建的字符串,在方法区的常量池中只会产生唯一一个字符串对象,使用该方式产生同样一个字符串时,

* 内存中不再开辟另外一块空间,而是两个引用变量指向同一个字符串对象。

*

动态:使用动态方式创建的字符串,在堆内存中会产生出不同的对象。

----------------------------------------------------------------------------------------------------------------------------

数组和集合的区别:

* 数组:可以存放基本数据类型,也可以存放引用数据类型,长度是固定的,访问数度过快,但是不会自动扩充

* 集合:只能存放引用数据类型,可以扩充,常用

*

*

*Collection集合:

* Set:存放的内容是无序不重复的

* 无序:存数据时候的顺序和存进去之后的顺序不一致

* List:存放的内容是有序可重复的

List:有序可重复的接口

*

*

* ArrayList与LinkedList的比较

存储结构

ArrayList是线性顺序存储

LinkedList对象间彼此串连起来的一个链表

操作性能

ArrayList适合随机查询的场合

LinkedList元素的插入和删除操作性高

从功能上

LinkedList要多一些

父类/父接口不可以使用子类特有的方法,兄弟关系也不能共用特定的方法

Map:双列集合,键值对方式存储,键不可以重复,值可以重复

HashMap类

*

* HashMap与TreeMap的比较

HashMap基于哈希表实现。

TreeMap基于树实现。

HashMap可以通过调优初始容量和负载因子,优化HashMap空间的使用。

TreeMap没有调优选项,因为该树总处于平衡状态

HashMap性能优于TreeMap

HashMap与Hashtable的比较

Hashtable是基于陈旧的Dictionary类的,HashMap是Java 1.2引进的Map接口的一个实现。

Hashtable是线程安全的,也就是说是同步的,而HashMap是线程序不安全的,不是同步的。

HashMap允许将null作为一个entry的key或者value,而Hashtable不允许用null。

泛型经常被称为参数化类型,使用<>形式处理



Spring框架知识点

               1. Spring是什么

                轻量级控制反转(IOC)和面向切面(AOP)的容器框架



               2. bean创建的两种规则

                          (1). beanFactoyr:

                                        提供一种延迟加载思想来创建bean对象,bean对象什么时候用什么时候创建

                           (2).ApplicationContext:

                                      提供的是一种立即加载来创建bean对象,只要解析完配置文件,就立刻创建bean对象


                3.bean三种实例化方式

                           (1).使用默认无参构造创建(开发中常用)

                                            默认情况下,如果类中没有默认无参构造方法,则创建失败,会报异常


                           (2).使用静态工厂形式创建

                                           需要使用bean标签的factory-method属性,指定静态工厂中创建对象的方法


                          (3).使用实例工厂形式创建

                                            因为实例工厂的方法不是静态的,所以需要先创建工厂对象,在通过工厂实例创建Service对象


                       4.bean的作用范围

                             它是可以通过配置属性的方式调整作用范围

                             配置的属性:bean标签的scope属性

                             属性的取值:

                                        singleton:单例的(默认值)

                                        prototype:多例的(struts2中常用)

                                        request:作用范围一次请求,和当前请求的转发

                                        session:作用范围是一次对话

                                        globalsession:作用范围是一次全局会话

                        5.bean的生命周期

                                       设计两个属性:init-method  destroy-method

                                       单例:

                                                出生:容器创建,对象出生了

                                                活着:容器在,对象一直在

                                                死亡:容器销毁,对象销毁(调用close方法)

                                       多例:

                                              出生:每次使用对象的时候创建对象

                                                活着:只要对象在使用中,就一直活着

                                              死亡:当对象长时间不使用,并且也没有别的对象引用时,由java的垃圾回收机制回收

                        6.依赖注入

                                配置资源通过-构造方法注入

                                涉及到的标签:<constructor-arg>

                                标签的属性:

                                            下三个指定哪个参数要赋值

                                             type:指定参数的类型

                                             index:指定参数的索引位置,从0开始

                                                name:指定参数的名称,常用

                                                下两个指定赋什么值

                                                value:指定基本数据类型或者String类型的数据

                                                ref:指定其他bean类型的数据

                              配置资源-通过set方法注入:

                                                        比较常用,因为不涉及到有参数和无参数构造方法的问题,以及修改参数个数的问题,提供getset就行

                                                          涉及的标签:property

                                                                           标签的属性:

                                                                                指定哪个参数要赋值

                                                                                name:指定参数的set方法

                                                                                指定赋什么值

                                                                                value:指定基本数据类型或者String类型的数据

                                                                                ref:指定其他bean类型的数据

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,504评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,434评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,089评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,378评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,472评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,506评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,519评论 3 413
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,292评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,738评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,022评论 2 329
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,194评论 1 342
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,873评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,536评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,162评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,413评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,075评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,080评论 2 352

推荐阅读更多精彩内容