读书笔记

一面向对象的主要特征:
1.抽象:将一类对象的共同特征总结出来的构造的过程,包括数据抽象和行为抽象两方面,
抽象只关注对象有哪些属性和行为。
2.封装:将数据和操作数据的方法绑定起来,对数据的访问只能通过定义的接口,
类中的方法就是对现实世界的一种封装。
3.继承:从已有类得到信息创建新类的过程,提供继承信息的类被称为父类,
得到继承信息的类为子类。
4.多态性:同样的对象引用调用同样的方法做不同的事情。多态性分为编译时
多态性和运行时多态性。(运行时多态性overwrite)是指A系统通过B类对象调用对象的方法,不管B类方法底层是怎么实现的。
(方法重载overload)实现的是(编译时)的多态性,
 


1,方法重载(overloading)就是在类中创建多个方法,具有相同的名字,但是具有不同的参数和不同的定义。
(不同参数个数和参数类型)


方法重写override实现是(运行时)的多态性。


1,父类和子类之间的多态性,对父类的函数进行重新定义。如果在子类中定义某方法与其父类相同的名称和参数,则该方法
被重写。
=====================================================
二,String是基本类型数据吗?
答:不是,Java的基本数据类型只有8个:
byte,short,int,long,float,double,char,boolean;除了基本类型和枚举类型
剩下的都是引用类型。
三,
&和&&的区别:
逻辑与和短路与的区别:逻辑与跟短路与的差别非常巨大。如果&&短路与左边表达式为
flase,右边表达式会被直接短路掉。


四,
堆,栈,和静态区:
基本类型的变量,对象的引用保存在内存中的栈空间。(栈)
通过关键字new,和构造器创建的对象放在堆空间中。(堆)
字面变量,如直接输入“100”“hello”放在静态区中。(静态区)




五。
math.round()两条原则:
1,距离谁进取谁。
2,一样近取整数值大的
例子:Math.round(11.6) = 12;Math.round(-11.6) = -12
Math.round(11.5)=12;Math.round(-11.5)=-11;




六, 数组有没有length()方法?String有么有length()方法?
数组没有length(方法)有length属性,javas中获得字符串的长度是通过length属性得到的。




七。final,finally,和finalize这三者之间的区别?
final:表示最终的,可以修饰成员变量,成员方法,类。
1.修饰成员变量时,表示常量,其值只能被赋予一次,之后便不能更改。
2.修饰成员方法,表示最终方法,即这个方法不能被子类重写。
3.修饰类,表示最终类,即这个类不能被继承。


finally:
1.异常处理机制的语法关键字。其格式有:


try{


  }catch(){
    }finally{




    };


且finally中的语句,无论是否放生异常,都将被执行。




finalize:是objct类中的方法,当垃圾回收期回收对象空间之前,会自动调用这个方法。
Java web面试题:
一、静态包含和动态包含有什么区别? 
答:静态包含是在编译时包含,会把包含到的所有jsp编译成一个Servlet。而动态包含是运行时包含,包含过程中,
涉及到的所有jsp对应单独的一个Servlet。而且静态包含性能好的多。


数据库
一、oracle是目前比较流行的关系型数据库,在分布式数据库中占有重要的地位,那说一下什么是关系型数据库? 
答:关系型数据库是建立在关系型模型上的基础数据库。而关系型模型是指二维表格及其表格之间的关系所组成的模型。
当前主流的关系型数据有:mysql/oracle/Microsoft sql server/db2等。如:银行、电商网站等大型系统都使用oracle数据库。




Hibernate框架
一、请说说Hibernate中的get/load方法的区别。 
答:虽然get/load方法它们都是根据id去查询对象,但他俩的区别还是蛮大的:


1.get方法直接得到一个持久化类型对象,它就是立即查询操作,也即我要什么就查到什么。 
2.load方法它得到的是持久化类的代理类型对象(子类对象)。它采用了一种延迟策略来查询数据。这时如果PO类使用final修饰符,就会报错,
因为final修饰的类不可以被继承。
get方法在查询时,如果不存在返回null;load方法在查询时,如果不存在,会产生异常——org.hibernate.ObjectNotFoundException。


二,Java的数据类型。
                1.基本数据类型  数值型 整数类型(byte 8,short16,int32, long64)  
                                         
                                        浮点类型(float32,double64) 


 
                                字符型 (char 16)






                                布尔型(boolean 1)
  


 数据类型


                               类(class)


                2.引用数据类型 接口(interface)


                               数组




三,String能被继承吗?为什么?
   不可以,因为String类有final修饰,而final修饰的类不能被继承。






四。String,Stringbuffer,Stringbuidler 的区别。


String字符串常量(final修饰,不可以被继承),String是常量,创建之后不能改变。


StringBuffer 字符串变量(线程安全),同样final类修饰,不能被继承,做了同步处理
(synchrinized修饰)
public synchronized String toString(){






}


Stringbuilder 字符串变量(非线程安全)没有synch修饰。
public string toString(){


}


ArrayList和LinkedList有什么区别。
都是实现了List接口
区别
    1.ArrayList是基于索引的数据接口,它底层是个数组,linkedList是以元素列表的形式存取数据的,每一个元素和
前一个元素链接在一起,ArrayList查询元素比linkedlist快。
    2.linkedlist 的插入,删除,增加比ArrayList快,不需要像数组那样重新计算大小或者跟新索引。
    3.linkedlist比ArraList更占内存,因为LInkedlist每一个节点存储了两个引用,一个指向前一个元素,一个指向下一个元素。


二。servlet生命周期(单实例多线程)


1.第一个到达服务器的HTTP请求被委派到Servlet容器,servlet通过调用init()方法进行初始化。
2.Servlet调用service()方法来处理客户端的请求。
3.servlet通过调用destroy()方法终止(结束)。
4.最后,servlet是由jvm的垃圾回收期进行垃圾回收的。


执行流程:
客户端返送HTTP请求,服务器将请求转发到servlet容器,servlet容器解析URL并根据web.xml找到相应的servlet,并将
请求request,response对象传递找到servlet,servlet根据request就可以知道是谁发出的请求,请求信息及其他信息,当servlet
处理完业务逻辑后将信息放入到response并相应到客户端。


SpringMVC与Struts2的不同
1.SpringMVC的入口是一个servlet即前端控制器,而Struts2入口是一个filter过虑器。
2.SpringMVC是基于方法开发(一个url对应一个方法),请求参数传递到方法的形参,可以设计为单例或多例(建议单例),
Struts2是基于类开发,传递参数是通过类的属性,只能设计为多例。
3.Struts2采用值栈存储请求和响应的数据,通过OGNL存取数据,SpringMVC通过参数解析器将request请求内容解析,
并给方法形参赋值,将数据和视图封装成ModelAndView对象,最后又将ModelAndView中的模型数据通过request域传输到页面。jsp视图解析器默认使用jstl。


一,128
servlet的任务是得到一个客户的请求,在发回一个响应。(servlet的存在就是为客户服务。)
Servlet的生命周期:
(1)servlet类加载;2)servlet实例化3)调用init()方法 4)调用service 5)调用destroy()方法


“记住” equals 和 == 的区别;


“==”习惯用于原生(primitive)类型之间的比较,而equals()仅用于对象之间的比较。


1使用==比较原生类型如:boolean、int、char等等,使用equals()比较对象。
2==返回true如果两个引用指向相同的对象,equals()的返回结果依赖于具体业务实现
3字符串的对比使用equals()代替==操作符






























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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值