java面试学习知识点



JAVA开发包的种类:JAVA MEJAVASEJAVAEE

JAVAME:一种以广泛兜兜消费性产品为目的的高度优化的JAVA运行环境,包括寻呼机、移动电话等,它是致力于消费产品和嵌入式设备的开发人员的最佳选择

JAVASE:针对桌面开发以及低端商务计算解决方案而开发的版本

JAVAEE:是一种利用JAVA平台来简化企业解决方案的开发,部署和管理相关的复杂问题的体系结构

 

JAVA语音的特性:简单的,安全的,健全的,面向对象的,多线程的,跨平台的

 

描述JAVA的类与对象:抽象的目的就是区别事物之间的本质和不同,面向对象编程的实质就是利用类和对象来建立抽象模型;类表示对象的类别,是创建对象的蓝本;对象是类的实例。

 

类成员的相关术语:

实例成员:指的是对象的实例变量和实例方法,只能通过对象引用加以访问或者调用;

实例变量:实例变量只有在类的实例化时才分配字符,即当创建类对象的时候,系统才分配这个字段也叫做非静态变量;

实例方法:一种隶属于类实例的方法,相同类的所有对象共享改方法的实现

静态成员:一种载入类时就需要进行分配的变量,静态变量隶属于类,但是不属于该类的任何对象,所有称为静态变量或者类变量;

静态方法:一种隶属于类但是不属于改类任何对象的方法,叫做类方法;同样可以通过类或者对象引用加以访问调用

 

对象的传递消息方式:JAVA 对象之间的消息传递是通过调用相互的实例方法来实现的

 

JAR命令:

Javacjdk的标准编译工具,常见的形式为:

Javac<选项><源文件>,它可能的选项

-g:生成所有调试信息

-g:none:生成无调试信息

-g:{lines,vars,source}:生成只有部分调试信息

-nowarn:生菜无警告

-verbose:输出关于编译器正在做的信息

-deprecation:输出使用了不鼓励使用的API的源程序位置

-classpath<路径>:指定用户类文件的位置

-sourcepath<路径>:指定输入源文件的位置

-bootclasspath<路径>:覆盖自举文件的位置

-extdirs<目录(多个)>:覆盖安装的扩展类的位置

-d<目录>:指定输出类文件的位置

-encoding<编码>:指定源文件中所用的字符集编码

-target<版本>:生成指定虚拟机版本的类文件

Java命令是jdk默认的java执行程序,在执行带包的.class文件时,需要使用标准的java包形式

 

Java开发原则:

Java中的代码必须封装到类中

Java中有俩种值:对象的引用和无数据类型值

引用代表根据类创建的对象

对象只能通过引用加以操作

Java中的对象不能包含其它对象,对象只能拥有指向其他对象的引用

 

Java基本语法:

Java的基本语言元素

原始数据类型

变量声明

变量的初始化

Java源文件的结构

Main()方法

 

Java语言的8个原始类型:int,byte,char,double,flaot,boolean,long,short

 

在类的主体中声明为static的成员变量或成员方法只属于类的本身,叫做类的静态成员,类的非静态成员隶属于类的对象,叫做类的实例成员。

 

类的声明只能是publicfinalabstract

 

如果一个类包含一个抽象方法时,改类就必须声明为抽象的

 

Public使用对象:类,方法,接口

Final使用对象:类,方法,变量

Private使用对象,成员

Static使用对象:类方法,变量,初始化函数

Abstract使用对象:类,接口,方法

Protected使用对象:成员

Native使用对象:成员

Synchronized使用对象:方法

Volatile使用对象:变量

Trasient使用对象:变量

 

面向对象的特征:抽象,封装,多态,继承;

抽象:抽象就是忽略一个主题中与当前目标无关的那些方面,而将目标的某个特征进行提炼;抽象包括俩方面:过程抽象和数据抽象

继承:继承是一种联结类的层次模型,它提供了一种明确表述共性的方法,并且允许和鼓励类的方法重用,新类可以从现有的类中派生,这个过程称为类继承;

封装:封装把过程和数据包围起来,对封装数据的访问只能通过调用已定义的接口

多态性:多态性允许不同类的对象对同一消息做出响应,多态性语言具有灵活、抽象、行为共享、代码共享的优势,很好的解决应用程序的函数同名问题。

 

面向对象的几个设计原则:指导原则是提高可维护性和可复用性;开闭原则、依赖倒转原则、迪来特原则、里氏代换原则、合成、聚合复用原则和接口隔离原则

 

面向对象编程中使用接口也是一种is a 的关系

 

同一个类中的2个或2个以上的方法可以有同一个名字,只要它们的参数声明不同即可,这种情况被称为重载,方法重载是java实现多态性的一种方式。

 

如果在子类中定义的一个方法其名称、返回类型及参数正好与父类中的某个方法的名称、返回类型及参数相同,那么就是说子类的方法覆盖了父类的方法:约束条件:

A.子类方法的名称参数和返回类型必须与父类的一样

B.子类方法不能缩小父类方法的访问权限

C.子类方法不能抛出比父类方法更多的异常

D.方法覆盖只能存在于子父类之间,同一个类中方法只能被重载,不能被覆盖

E.父类的静态方法不能被子类覆盖为非静态的方法

F.子类可以定义与父类的静态方法同名的静态方法,以便在子类中隐藏父类的静态方法

G.父类的非静态方法不能被子类覆盖为静态方法

H.父类的私有方法不能被子类覆盖

I.父类的抽象方法可以被子类通过俩种途径覆盖:1子类实现父类的抽象方法,2子类重新声明父类的抽象方法

J.父类的非抽象方法可以被覆盖为抽象方法

 

覆盖与重载的异同点:

相同:都要求方法同名

都可以用于抽象方法和非抽象方法

不同:覆盖要求参数一致,重载要求不一致

覆盖要求返回类型一致,重载不要求

覆盖是子父类之间,重载是同一个类之间

父类的方法只能被覆盖一次,而一个方法可以重载多次

 

 

Java构造函数的执行顺序

A.对象是由new运算创造的且在任何构造函数执行之前就已经创建完毕

B.构造函数的执行总是“向上”的,而且总是先执行完父类的构造函数

C.在构造函数中,没有this()语句,则有super()语句,没有this()时,或者自己编写,或者由系统自动调用

D.显示初始化语句总是先于构造函数语句,单后于super()或this()语句

 

父类的构造函数是先于子类的构造函数运行的

 

进程与线程的区别:

A.一个程序至少有一个进程,一个进程至少有一个线程,线程的划分尺度小于进程,使得多线程程序的并发性高;

B.进程在执行过程有独立的内存单元,而线程没有,它们是共享内存;

C.线程在执行过程中与进程有区别,线程都有一个程序运行的入口,顺序执行序列和程序的出口,但是进程不能独立执行,他必须依存在应用程序中;

D.逻辑角度来看,多线程的意义在于一个应用程序中有多个执行部分可以同时执行;操作系统并没有将多个线程看作是多个独立的应用,来实现进程的调度和管理,以及资源分配;

 

一个线程的状态:创建,就绪,运行,等待,死亡

 

线程说法:

A.Thread类实现了Runnnable接口,不是抽象类

B.当最后一个非后台线程结束是,程序也将终止

C.Runnable接口有一个run()方法,不过该接口没有规定必须定义一个start()方法,在一个Runnable对象上调用run()方法无须创建新线程

D.Run()是线程执行的方法

E.必须创建Thread类的实例,以生成大量的新线程

 

 

Thread类的常用方法

A.final Boolean isAlive():用来确定线程是活动还是死亡,活动为true,死亡为false

B.Final int getPriority():返回当前线程的优先级

C.Final void setPriorityint a):改变线程的优先级

D.Static void yield():使线程暂时停止运行

E.Static voud sleeplong millises):指定当前线程的休眠时间,然后继续运行

F.Final void join():调用改方法的某线程,将当前线程与该线程“合并”,即等待该线程结束,再次恢复当前线程的运行

G.Void interrupt():中断调用此方法的线程,在等通知、休眠或者阻塞以等待挂起完成的状态下,线程会抛出InterruptedException异常

 

每个对象都有notify()方法

 

Object类的方法

A.object():默认构造方法

B.Clone():创建并返回次对象的一个副本

C.Equalsobject obj):判断某个其他对象是否与此对象“相等”

D.Finalize():当垃圾回收器确定不存在对象的引用时,由对象的垃圾回收器调用此方法

E.getClass():返回一个对象的运行时类

F.hassCode():返回该对象的地址转换成int类型返回

G.Notify():唤醒在此对象监视器上等待的单个线程

H.notifyAll():唤醒在此对象监视器上等 待的所有线程

I.toString():返回该对象的字符串表示

J.Wait():导致当前的线程等待直到其他线程调用此对象的notify()方法或notifyAll()方法

K.Waitlong timeout):导致当前的线程在指定时间内等待,直到其他线程调用此对象的notify()方法huonotifyAll()方法,超过指定时间量,线程进入就绪状态

L.Waitlong timeoutint nanos):同时,(nanos 纳秒)

 

如果对象的类没有实现cloneable接口,object类的clone方法就会抛出CloneNotSupportedException异常

 

Jsp内置对象

A.HttpServletrequest 类的request对象代表请求对象,主要用于接受客户端通过HTTP协议链接传输到服务器端的数据

B.Httpservletresponse类的response对象:代表响应对象,主要用于向客户端发送数据

C.JspWriter类的out对象:主要用于向客户端输出数据,out的基类是JspWriter

D.HttpSession类的session对象:主要用来分别保存每个用户信息和会话状态

E.ServletContext类的application对象:主要用于保存所以应用系统中的公有数据,它是一个共享的内置对象,即一个容器中的多个用户共享一个application对象,只要没有关闭服务器,application对象将一直存在

F.pageContext类的pageContext对象:管理网页属性,代表了页面的上下文,pageContext对象的创建和初始化都是有容器自动完成的;

G.Object 类的page对象:代表了当前正在运行的jsp页面,也就是说,page对象代表了jsp被编译后的servletpage对象只能在当前jsp范围之内使用

H.Exception对象:处理jsp文件执行是发生的错误和异常,只有错误页面里才可使用

 

Jsp6个基本动作指令和作用:includeforwordusebeangetpropertysetpropertyplugin

 

Soa是指为了解决在internet环境下业务集成的需要,通过连接独立的功能实体来实现业务需要的一种软件系统架构

 

Soa3个特征:独立的功能实体,大数据量低频量访问和基于文本的消息传递

 

Web service 是基于网络的、分布式的模块化组件,它执行特定的任务,遵守具体的技术规范,这些规范使使得web service 能与气体兼容的组件进行互操作

 

Statementpreparedstatementcallablestatement的区别:

继承关系:statementpreparedstatement父类;preparedstatementcallablestatement父类

Statement用于执行一条普通的动态sql语句

Preparedstatement 用于执行预编译好的sql语句

Callablestatement用于调用数据库的存储过程

 

 

Spring中事务传播行为

A.PROPAGATON_REQUIRED:支持当前事务,如果当前没有事务,就新建一个事务,这是最常见的选择

B.PROPAGATION_SUPPORTS:支持当前事务,如果没有事务,就以非事务方式执行

C.PROPAGATION_MANDATORY:支持当前事务,如果当前没有事务,就抛出异常

D.PROPAGATION_REQUIRES_NEW:新建事务,如果当前存在事务,就把当前事务挂起

E.PROPAGATION_NOT_SUPPORTED:以非事务方式执行操作,如果当前存在事务就把当前事务挂起

F.PROPAGATION_NEVER:以非事务方式执行,如果当前存在事务,则抛出异常

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

丵鹰

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值