配色: 字号:
Java相关知识点
2018-04-29 | 阅:  转:  |  分享 
  
控制修饰符修饰词(Publicstatic);返回值类型(void);sum(方法名);(intn1,intn2)—参数列表Publi
cstaticvoidsum(intn1,intn2){方法体}Public:公共的,任何类Protected:
本类的,子类,同包类默认(default):本类,同包类Private:私有的,任何类重载与重写的区别?重载:发生在同一类
中,方法名相同,参数列表不同,方法体不同重写:1.发生在父子类中,方法名相同,参数列表相同,方法体不同2.子类方法的返回值类
型小于或等于父类的;3.修饰词:子类>=父类4.异常:子类<=父类构造器?与类同名,没有返回值类型,但也不能写Vo
id若不写构造方法,默认提供一个无参构造方法在创建对象时被调用任何类都必须包含构造方法一个类中可以有多个有参构造方法构造器没有重写
没有继承==与equals区别?&与&&的区别?转发与重定向?DoGet与doPost什么时候调用?Doget和dopos
t都是用来接受前端传来数据的.可在
中的method属性中指定提方式method=”get”>,如果指定method提交方式,默认是get提交Get提交数据大小有限制,1024字节;post
提交数据大小没有限制.通过get传递数据,实际上是将传递的数据按照”Key,Value”的方式跟在URL的后面来达到传送的
目的地.Post传递数据是通过http请求的附件进行的,在URL没有显示明文.Mybatis缓存机制?Mybatis提供查询缓存,
主要是减轻数据库的压力,提高查询数据的效率分为一级缓存(SqlSession默认开启)和二级缓存(Mapper)一级缓存工作原理:
当用户第一次查询用户A信息的时候,先找缓存中有不,如果没有就从数据库中查询用户A信息.得到用户A信息后把用户A信息存储到一级缓存
中.当第二次访问用户A信息时,直接从缓存中查询用户A信息.当执行commit(插入,删除,修改)操作时,清除SqlSession中
的一级缓存,目的是让缓存中存储最新数据信息,避免脏读.实例变量与静态变量?静态变量:要加static关键字,;1.它属于类,只
要加载类的字节码,不用创建任何实例对象2.它直接使用类名来引用3.属于类,存在方法区中,只有一份4.非静态方法可以直接调用静态方法
静态块:在类被加载期间自动执行因为类只被加载一次,所以静态块只执行一次实例变量:不加static关键字1.它属于某个对象的属性,必
须创建实例对象2.创建对象后才可以通过这个对象来使用Linux基本命令?1.文件和目录Cd进入个人的主目录Pwd显示工作路径
Ls查看目录中的文件Mkdir创建目录Mv重名名/移动一个目录Cp复制一个文件/目录Rm删除文件/目录Ps-A所有
的进程都显示出来Psaux查看系统所有的进程数据Kill-9PID强制中断一个进程Tar-xvfXX解压Cat
查看文件的内容Vim文本编辑器Final,finally,finalize的区别?Final:1.修饰变量,变量不能被
改变2.修饰方法,方法不能被重写3.修饰类,类不能被继承Finally:异常处理关键字,不管异常是否发生都执行.Try{}cat
ch(){}finally{}try中有return语句,finally中有return语句;直接执行finally中的ret
urn2.try中有return语句,finally中无;先执行finally语句后执行try中的return3.try
中无,finally中有return;Finalize方法---它是继承Object类对象没有被引用时,垃圾回收器将对象从内存中
移除Java与javac?Javac命令调用java编译器将.java文件编译成.class文件Java命令调用jvm将.
class文件解析成机器能识别的二进制文件引用传递与值传递?JVM内存调优?Mysql数据库优化?不给数据库留NULL,使用no
tnull,可以设置为默认0;避免全表扫描;避免在where子句中使用!=或<>;避免使用or连接条件对于连续
的数值,能用between就不要用in尽可能使用varchar替代char面向对象三大特性?封装:隐藏实现细节,提供公共的访问
方式,封装对象的属性和行为;封装具体的访问权限继承:减少代码重复,提高代码复用性;通过extends继承,implement
s实现;单一继承,多接口实现多态:1.instanceof关键字判断------左边对象是否是右边类的实例,返回boolean
类型的数据;还可以判断-----继承中的子类的实例是否为父类的实现;2.向上造型:父类引用指向子类对象.Fatherfa=
newson();3.向下造型:子类对象的父类引用赋值给子类引用,需要强制转换.Fatherfr=newson();Son
sn=(son)fr;4.行为的多态,对象的多态.多态表现形式:重写和重载接口与抽象类的区别?接口:interface定义,i
mplements来实现。1.无构造方法,只能含常量,抽象方法,extends在前,implements在后;2.接口不能实例
化;接口访问修饰词必须是public;3.接口为某变量提供默认的修饰符:publicstaticfinal4.接口为某方法
提供默认的修饰符:publicabstract抽象类:abstract修饰,没有方法体{},有构造方法,1.包含抽象方法
的类必须是抽象类;2.抽象方法---不能是静态的,不能是私有的3.抽象类不能修饰变量:abstractintk=4错误in
t和integer的区别?Int属于基本数据类型,直接存储数值,默认初始值为0,Integer属于引用数据类型,默认初始值为NUL
LInteger是int提供的封装类,声明Integer变量需要实例化,怎样将GB2312编码的字符串转换为ISO-8859-1编
码的字符串?Stringstr=”中国”;Byte[]be=str.getBytes(“GB2312”);Strings
t=newString(be,”ISO-8859-1”);Java常见异常?java.lang.NullPointerExcep
tion(空指针异常)java.lang.NumberFormatException(字符串转换为数字异常)java.lang
.IndexOutOfBoundsException(数组下标越界异常)java.lang.ClassCastException
(数据类型转换异常)java.lang.FileNotFoundException(文件未找到异常)java.lang.A
rrayStoreException(数组存储异常)java.lang.IllegalAccessException(没有访
问权限)java.lang.ClassNotFoundException(指定的类不存在)java.lang.NoSuchFi
ledException(方法不存在异常)java.lang.IllegalArgumentException(方法的参数错误)
MVC怎么理解?M是指业务模型;V是指用户界面;C是控制器使用MVC目的是将M和V实现代码分离,使用同一个程序,可以使用不同
的表现形式.View视图是用户看到并与之交互的界面;Model模型是表示业务规则Controller是指控制器接受用户的输入并调用
模型和视图去完成用户的需求MySQL主要日志?1.错误日志(log_warings)记录mysql在启动,关闭和重启过程中,一些的
错误和警告信息.2.普通查询日志(general_log)记录在mysql在运行sql语句时候,不管是否执行成功的一个记录日志.默
认不开启3.事务日志分为重做日志(Redo)和回滚日志(Undo)Redo记录的是已经全部完成的事务;Undo记录的是已部分完成
并且写入磁盘的未完成的事务.慢查询日志(slow_query_log)查询语句超过指定时间的日志.二进制日志记录修改数据的mysq
l语句.默认不开启.在my.cnf中加入log_bin=master_log就开启了7.中继日志,当需要主从复制的时候就用到了它
.它是从主数据库服务器记录下来的二进制日志文件开启中继日志在my.cnf里面添加relay_log=relay_log数据库存储
过程?存储过程是一组transact-SQL语句,他们只需编译一次,以后可以多次使用.是为了完成特定功能的sql语句集,经编译后存
储在数据库中.存储过程是由流控制和sql语句书写的过程,这个过程经编译和优化后存储在数据库服务器中.存储优点存储过程只创造时进
行编译,每次执行存储过程都不需要重新编译,所以存储过程可提高数据库执行速度.在对数据库进行复杂操作时,将此复杂操作用存储过程封装起
来与数据库提供的事务处理结合在一起存储过程可以重复使用,可减少数据库开发人员的工作量.安全性高,设定某个用户可以对指定存储过程的
使用权.数据库索引作用?可以快速的查找数据库中的指定数据.索引是唯一性Hashtable与HashMap?|--Hashtable
:底层是哈希表数据结构,是线程同步的,线程安全。不保证存储数据。不可以存储null键和null值。|--HashMap:底层是哈希
表数据结构,是线程不同步的,非线程安全。可以存储null键和null值。替代了Hashtable.Spring容器中Bean的作用
域Singleton:单例模式.PrototypeRequestSessionglobalsession配置文件的Bean中设
置scope=”prototype”后变为多例模式手写单例模式PublicclassSingleton{Private
staticSingletoninstance=null;PrivateSingleton(){}Singleton
getInstance(){If(instance==null){Instance=newSingleton();Return
instance;}}}Mysql分页关键字(limit)Limitm,n;M:从哪一行开始;n:查询多少条Selec
tfromuserlimit5,5表示:从第六条开始查询五条数据JSP九大内置对象1.输入输出对象:reques
t,HttpServletRequest类的实例response,HttpServletResponse类的实例out,Js
pWriter类的实例,用于把结果输出至网页上2.通信控制对象:pageContext,PageContext类的实例,提供对
JSP页面所有对象以及命名空间的访问session,HttpSession类的实例application,ServletC
ontext类的实例Servlet对象:page,类似于java类中的this关键字config,ServletCo
nfig类的实例4.错误处理对象:exception(反映运行的异常)代表发生错误的JSP页面中对应的异常对象Java中创建对
象的方式1.是用new关键字:通过这种方式,我们可以调用任意的构造函数(无参数和有参数)2.使用Class类的newInstan
ce方法:这个方法调用无参数的构造函数创建对象3.使用Constructor类的newInstance方法:这个方法可以调用有
参数的和私有的构造函数4.使用clone方法:调用colne方法,jvm就会创建一个新对象,用clone方法创建对象不会调用任何
的构造函数.要用clone方法需要实现Cloneable接口5.使用反序列化:当我们序列化和反序列化的时候,jvm会创建一个单
独的对象.在反序列化时,jvm不会调用任何构造函数.为了反序列化一个对象,我们让类实现Serializable接口.反射什么
是反射?有几种方法加载字节码?分别是什么?理解为一个解剖重构的过程。动态加载一个类,获得这个类的字节码文件对象,再通过这个字节码文
件对象去操作类中的各个成员变量。3个方法加载字节码。创建对象,然后调用对象的getClass()方法。每个数据类型都有它的静态属性
类名.class。forName()方法。Classclazz=class.forName(“类名”);通过反射能获取什么
?获得字节码文件对象,可以通过字节码文件对象获得类的成员,并使用这些成员。通过反射获得字节码的三种方式(2)加载器和反射什么关系(
2)这么理解,加载器是用来加载类,从而获得类的字节码文件,有了字节码文件,才能进一步进行操作,获得类的成员等等。反射是需要加载器来
完成的。什么是反射。对暴力反射的理解(2)反射就是通过对类的解剖,获得类的成员的过程。暴力反射就是将类的一些私有的成员,通过get
DeclaredMethod,getDeclaredField,getDeclaredConstructor强制取出。通过se
tAccessible(true)方法。Log4j日志级别(从低到高)Debug()输出“调试”级别的日志信息Info()
输出“信息”级别的日志信息Warn()“警告”Error()“错误”Fatal()“致命错误Ng
inx配置文件有哪些?Server表示服务,在Nginx中可以配置很多项服务.Listen表示端口监听:80.目的就是为了让nginx起作用.server_name表示服务的名称.浏览器中访问的具体路径.Location表示当Nginx成功拦截请求后做的处理.root表示转发到文件夹中.这是一个关键字不要随便修改.Index默认访问路径@Autowired与@Resource注解?(1)、@Autowired默认按照byType方式进行bean匹配,@Resource默认按照byName方式进行bean匹配(2)、@Autowired是Spring的注解,@Resource是J2EE的注解,这个看一下导入注解的时候这两个注解的包名就一清二楚了importorg.springframework.beans.factory.annotation.Autowired;importjavax.annotation.Resource;
献花(0)
+1
(本文系cvbh55fghj首藏)