31
2020
03

Doctype有什么作用?严格模式与混杂模式有什么区别?

Doctype作用<!DOCTYPE>声明叫做文件类型定义DTD(Document Type Definition),声明的作用为了告诉浏览器该文件的类型。让浏览器解析器知道应该用哪个规范来解析文档。<!DOCTYPE>声明必须在 HTML 文档的第一行,这并不是一个 HTML 标签。严格模式与混杂模式的区别:严格模式:又称标准模式,是指浏览器按照 W3C 标准解析代码。混杂模式:又称怪异模式或兼容模式,是指浏览器用自己的方式解析代码。如何区分:浏览器解析时到底使用严格模
31
2020
03

Position属性的值有哪些?怎样使用?

absolute 生成绝对定位的元素,相对于static定位以外的第一个父元素进行定位。元素的位置通过”left”,”top”,”right”以及”bottom”属性进行规定。fixed 生成绝对定位的元素,相对于浏览器窗口进行定位。元素的位置通过 “left”, “top”, “right” 以及 “bottom” 属性进行规定。relative 生成相对定位的元素,相对于其正常位置进行定位。因此,”left:20”会向元素的 LEFT 位置添加 20 像素。st
31
2020
03

CLR 技术和 COM技术的比较

CLR 和 COM 都定义了组件间交互的规范。COM 并没有定义如何描述组件间的依赖性,并且由于其严格的物理约定,造成了很多组件版本升级和控制的问题。CLR 运用元数据和逻辑类型定义等机制,有效地解决了 COM 遗留的一些问题。并且,相较于 COM模型,笔者认为CLR 更容易理解和学习。
31
2020
03

什么是 CTS、CLS 和CLR

公共语言运行库(CLR)是一个CLI 的一个实现,包含了.NET 运行引擎和符合 CLI 的类库。 通用类型系统(CTS)包含在微软公司提交的 CLI 规范,定义了一个可以在 CLR 上运行的类型规范。 公共语言规范是 CTS的一个子集,定义了所有面向.NET 的程序所需要符合的最小规范集。 
31
2020
03

Redis有什么缺点?

1. 存储受内存大小限制;2. 持久化时占用cpu较高
31
2020
03

Redis有什么优点?

1. 速度快:数据存储在内存中,类似于HashMap,操作和查找的时间复杂度都是O(1);2. 支持数据类型丰富:有字符串string,字典hash,列表list,集合set,有序集合zset3. 支持持久化
31
2020
03

Mybatis的编程步骤

 (0)创建SqlSessionFactoryBuilder   (1)通过SqlsesionFactoryBuilder创建sqlSessionFactory   (2)通过SqlSessionFactory创建sqlSession     (3)通过sqlSession执行数据库操作   (4)调用session.commit()提交事务   (5)调用session.cl
31
2020
03

$和#的区别

 (1)#把传入的参数当做字符串处理  $表示直接显示  (2)#很大程度防止Sql注入(语句拼接)  (3)能用#尽量用#
31
2020
03

模糊查询:LIKE

   <selectid="findByName2"        parameterType="java.lang.String" resultType="com.gugiu.model.User">               select *  from use
31
2020
03

映射文件

 <mapper name="text">         <select id="FindByID" paramenterType="int" resultType="com.guigu.User">                select
31
2020
03

Mybatis和jdbc的区别

 相比与jdbc,Mybatis具有以下优点           (1)数据库链接创建,释放频繁造成系统资源浪费会影响系统性能,使用数据库可以解决               解决:在核心配置文件SqlMapConfig.xml中配置数据链接池,使用数据链接池管理数据库链接       (2)Sql写在代码中
31
2020
03

Mybatis分为三层

(1)API接口层:提供给外部使用的接口API  (2)数据处理层:负责具体的SQL  (3)基础支撑层:负责最基础的功能支撑,如连接管理,事务管理,配置加载和缓存处理
31
2020
03

谈谈MyBatis

Mybatis是一个优秀的持久层框架,它对jdbc的操作数据库的过程进行封装,使得开发者只需要专注于SQL语句本身,而不用去关心注册驱动,创建connection等,Mybatis通过xml文件配置或者注解的方式将要执行的各种statement配置起来,并通过java对象和statement中的sql进行映射成最终执行的sql语句,最后由Mybatis框架执行sql并将结果映射成java对象并返回。
31
2020
03

如何获取自动生成的(主)键值

 解决思路:通过LAST_INSERT_ID()获取刚插入记录的自增主键值,在insert语句执行后,执行select LAST_INSERT_ID()就可以获取自增主键。    <insert id="insertUser" parameterType="cn.itcast.mybatis.po.User">            
31
2020
03

使用MyBatis的mapper接口调用有哪些要求?

(1)Mapper接口方法名和mapper.xml中定义的每个sql的id相同(2)Mapper接口中输入的参数类型和mapper.xml中定义的每个sql的ParameterType相同(3)Mapper接口中输出的参数类型和mapper.xml中定义的每个sql的resultType相同(4)Mapper.xml文件中的namespace即是接口的类路径
31
2020
03

Statement和PrepareStatement的区别

  PreparedStatement:表示预编译的 SQL 语句的对象。  (1)PrepareStatement可以使用占位符,是预编译的,批处理比Statement效率高  (2)在对数据库只执行一次性存取的时侯,用 Statement 对象进行处理。  (3)PreparedStatement的第一次执行消耗是很高的. 它的性能体现在后面的重复执行
31
2020
03

Python中pass语句的作用是什么?

pass语句什么也不做,一般作为占位符或者创建占位程序,pass语句不会执行任何操作。
31
2020
03

final, finally, finalize的区别。

 final 用于声明属性,方法和类,分别表示属性不可变,方法不可覆盖,类不可继承。内部类要访问局部变量,局部变量必须定义成final类型。        finally是异常处理语句结构的一部分,表示总是执行。        finalize是Object类的一个方法,在垃圾收集器执行的时候会调用被回收对象的此方法,可以覆盖此方法提供垃圾收集时的其他资源回收,例如关闭文件等。但是JVM不保证此方法总被调用
31
2020
03

try {}里有一个return语句,那么紧跟在这个try后的finally{}里的code会不会被执行,什么时候被执行,在return前还是后?

 我们知道finally{}中的语句是一定会执行的,那么这个可能正常脱口而出就是return之前,return之后可能就出了这个方法了,鬼知道跑哪里去了,但更准确的应该是在return中间执行,请看下面程序代码的运行结果:public classTest {    public static void main(String[]args) {       System.out.println(newTest().test())
31
2020
03

下面这条语句一共创建了多少个对象:String s="a"+"b"+"c"+"d";

对于如下代码:String s1 = "a";String s2 = s1 + "b";String s3 = "a" + "b";System.out.println(s2 == "ab");System.out.println(s3 == "ab");第一条语句打印的结果为false,第二条语句打印的结果为true,这说明javac编译可以对字符串常量直接相加的表达式进行优
31
2020
03

String和StringBuffer的区别

JAVA平台提供了两个类:String和StringBuffer,它们可以储存和操作字符串,即包含多个字符的字符数据。这个String类提供了数值不可改变的字符串。而这个StringBuffer类提供的字符串可以进行修改。当你知道字符数据要改变的时候你就可以使用StringBuffer。典型地,你可以使用StringBuffers来动态构造字符数据。
31
2020
03

String s = new String("xyz");创建了几个StringObject?是否可以继承String类?

 两个或一个都有可能,”xyz”对应一个对象,这个对象放在字符串常量缓冲区,常量”xyz”不管出现多少遍,都是缓冲区中的那一个。NewString每写一遍,就创建一个新的对象,它使用常量”xyz”对象的内容来创建出一个新String对象。如果以前就用过’xyz’,那么这里就不会创建”xyz”了,直接从缓冲区拿,这时创建了一个StringObject;但如果以前没有用过"xyz",那么此时就会创建一个对象并放入缓冲区,这种情况它创建两个对象。至于String类是否继承
31
2020
03

你所知道的集合类都有哪些?主要方法?

最常用的集合类是 List 和 Map。 List的具体实现包括 ArrayList和 Vector,它们是可变大小的列表,比较适合构建、存储和操作任何类型对象的元素列表。 List适用于按数值索引访问元素的情形。        Map 提供了一个更通用的元素存储方法。 Map集合类用于存储元素对(称作"键"和"值"),其中每个键映射到一个值。        它们都有增删改查的
31
2020
03

Set里的元素是不能重复的,那么用什么方法来区分重复与否呢?是用==还是equals()?它们有何区别?

Set里的元素是不能重复的,元素重复与否是使用equals()方法进行判断的。        ==和equal区别也是考烂了的题,这里说一下:        ==操作符专门用来比较两个变量的值是否相等,也就是用于比较变量所对应的内存中所存储的数值是否相同,要比较两个基本类型的数据或两个引用变量是否相等,只能用==操作符。        equals方法是用于比较两个独立对象的内
31
2020
03

Collection和Collections的区别。

 Collection是集合类的上级接口,继承他的接口主要有Set和List.        Collections是针对集合类的一个帮助类,他提供一系列静态方法实现对各种集合的搜索、排序、线程安全化等操作。
31
2020
03

去掉一个Vector集合中重复的元素

Vector newVector = new Vector();For (int i=0;i<vector.size();i++){Object obj = vector.get(i);       if(!newVector.contains(obj);             newVector.add(obj);}还有一种简单的方式,利用了Set不允许重复元素:HashSet
31
2020
03

说出ArrayList,Vector,LinkedList的存储性能和特性

ArrayList和Vector都是使用数组方式存储数据,此数组元素数大于实际存储的数据以便增加和插入元素,它们都允许直接按序号索引元素,但是插入元素要涉及数组元素移动等内存操作,所以索引数据快而插入数据慢,Vector由于使用了synchronized方法(线程安全),通常性能上较ArrayList差。而LinkedList使用双向链表实现存储,按序号索引数据需要进行前向或后向遍历,索引就变慢了,但是插入数据时只需要记录本项的前后项即可,所以插入速度较快。     
31
2020
03

List、Map、Set三个接口,存取元素时,各有什么特点?

(这样的题比较考水平,两个方面的水平:一是要真正明白这些内容,二是要有较强的总结和表述能力。)        首先,List与Set具有相似性,它们都是单列元素的集合,所以,它们有一个共同的父接口,叫Collection。Set里面不允许有重复的元素,即不能有两个相等(注意,不是仅仅是相同)的对象,即假设Set集合中有了一个A对象,现在我要向Set集合再存入一个B对象,但B对象与A对象equals相等,则B对象存储不进去,所以,Set集合的add方法有一个
31
2020
03

List,Set, Map是否继承自Collection接口?

  List,Set是,Map不是
31
2020
03

List和 Map区别?

一个是存储单列数据的集合,另一个是存储键和值这样的双列数据的集合,List中存储的数据是有顺序,并且允许重复;Map中存储的数据是没有顺序的,其键是不能重复的,它的值是可以有重复的。
31
2020
03

HashMap和Hashtable的区别

   HashMap是Hashtable的轻量级实现(非线程安全的实现),他们都完成了Map接口,主要区别在于HashMap允许空(null)键值(key),由于非线程安全,在只有一个线程访问的情况下,效率要高于Hashtable。        HashMap允许将null作为一个entry的key或者value,而Hashtable不允许。HashMap把Hashtable的contains方法去掉了,改成containsvalue
31
2020
03

ArrayList和Vector的区别

这两个类都实现了List接口(List接口继承了Collection接口),他们都是有序集合,即存储在这两个集合中的元素的位置都是有顺序的,相当于一种动态的数组,我们以后可以按位置索引号取出某个元素,并且其中的数据是允许重复的,这是与HashSet之类的集合的最大不同处,HashSet之类的集合不可以按索引号去检索其中的元素,也不允许有重复的元素。         ArrayList与Vector的区别主要包括两个方面:.(1)同步性: 
31
2020
03

String s = "Hello";s = s + "world!";这两行代码执行后,原始的String对象中的内容到底变了没有?

 没有。因为String被设计成不可变(immutable)类,所以它的所有对象都是不可变对象。在这段代码中,s原先指向一个String对象,内容是 "Hello",然后我们对s进行了+操作,那么s所指向的那个对象是否发生了改变呢?答案是没有。这时,s不指向原来那个对象了,而指向了另一个 String对象,内容为"Hello world!",原来那个对象还存在于内存之中,只是s这个引用变量不再指向它了。      &
31
2020
03

内部类可以引用它的包含类的成员吗?有没有什么限制?

 完全可以。如果不是静态内部类,那没有什么限制!        如果你把静态嵌套类当作内部类的一种特例,那在这种情况下不可以访问外部类的普通成员变量,而只能访问外部类中的静态成员,例如,下面的代码:class Outer{static int x;static class Inner    {        voidtest()        {&
31
2020
03

abstract的method是否可同时是static,是否可同时是native,是否可同时是synchronized?

   abstract的method不可以是static的,因为抽象的方法是要被子类实现的,而static与子类扯不上关系!        native方法表示该方法要用另外一种依赖平台的编程语言实现的,不存在着被子类实现的问题,所以,它也不能是抽象的,不能与abstract混用。例如,FileOutputSteam类要硬件打交道,底层的实现用的是操作系统相关的api实现;例如,在windows用c语言实现的,所以,查看jdk的源代码,
31
2020
03

abstractclass和interface语法上有什么区别?

1.抽象类可以有构造方法,接口中不能有构造方法。2.抽象类中可以有普通成员变量,接口中没有普通成员变量3.抽象类中可以包含非抽象的普通方法,接口中的所有方法必须都是抽象的,不能有非抽象的普通方法。4. 抽象类中的抽象方法的访问类型可以是public,protected和(默认类型,虽然eclipse下不报错,但应该也不行),但接口中的抽象方法只能是public类型的,并且默认即为public abstract类型。5. 抽象类中可以包含静态方法,接口中不能包含静态方法6. 抽象类和接口中都可以包
31
2020
03

Java中实现多态的机制是什么?

靠的是父类或接口定义的引用变量可以指向子类或具体实现类的实例对象,而程序调用的方法在运行期才动态绑定,就是引用变量所指向的具体实例对象的方法,也就是内存里正在运行的那个对象的方法,而不是引用变量的类型中定义的方法。
31
2020
03

接口是否可继承接口?抽象类是否可实现(implements)接口?抽象类是否可继承具体类(concreteclass)?抽象类中是否可以有静态的main方法?

 接口可以继承接口。抽象类可以实现(implements)接口,抽象类可以继承具体类。抽象类中可以有静态的main方法。        备注:只要明白了接口和抽象类的本质和作用,这些问题都很好回答,你想想,如果你是java语言的设计者,你是否会提供这样的支持,如果不提供的话,有什么理由吗?如果你没有道理不提供,那答案就是肯定的了。        只要记住抽象类与普通类的唯一区别就是不能创建实例对象和允许有a
31
2020
03

Overload和Override的区别?Overloaded的方法是否可以改变返回值的类型?

Overload是重载的意思,Override是覆盖的意思,也就是重写。        重载Overload表示同一个类中可以有多个名称相同的方法,但这些方法的参数列表各不相同(即参数个数或类型不同)。        重写Override表示子类中的方法可以与父类中的某个方法的名称和参数完全相同,通过子类创建的实例对象调用这个方法时,将调用子类中的定义方法,这相当于把父类中定义的那个完全相同的方法给覆盖了,这也是面向
31
2020
03

Math.round(11.5)等於多少?Math.round(-11.5)等於多少?

 Math类中提供了三个与取整有关的方法:ceil、floor、round,这些方法的作用与它们的英文名称的含义相对应。        例如,ceil的英文意义是天花板,该方法就表示向上取整,Math.ceil(11.3)的结果为12,Math.ceil(-11.3)的结果是-11;floor的英文意义是地板,该方法就表示向下取整,Math.ceil(11.6)的结果为11,Math.ceil(-11.6)的结果是-12;最难掌握的是round方
31
2020
03

Integer与int的区别

 int是java提供的8种原始数据类型之一。Java为每个原始类型提供了封装类,Integer是java为int提供的封装类。int的默认值为0,而Integer的默认值为null,即Integer可以区分出未赋值和值为0的区别,int则无法表达出未赋值的情况。        例如:要想表达出没有参加考试和考试成绩为0的区别,则只能使用Integer。在JSP开发中,Integer的默认为null,所以用el表达式在文本框中显示时,值为空白字符
31
2020
03

是否可以从一个static方法内部发出对非static方法的调用?

   不可以。因为非static方法是要与对象关联在一起的,必须创建一个对象后,才可以在该对象上进行方法调用,而static方法调用时不需要创建对象,可以直接调用。也就是说,当一个static方法被调用时,可能还没有创建任何实例对象,如果从一个static方法中发出对非static方法的调用,那个非static方法是关联到哪个对象上的呢?这个逻辑无法成立,所以,一个static方法内部发出对非static方法的调用。
31
2020
03

静态变量和实例变量的区别?

在语法定义上的区别:静态变量前要加static关键字,而实例变量前则不加。        在程序运行时的区别:实例变量属于某个对象的属性,必须创建了实例对象,其中的实例变量才会被分配空间,才能使用这个实例变量。静态变量不属于某个实例对象,而是属于类,所以也称为类变量,只要程序加载了类的字节码,不用创建任何实例对象,静态变量就会被分配空间,静态变量就可以被使用了。总之,实例变量必须创建对象后才可以通过这个对象来使用,静态变量则可以直接使用类名来引用。&nbs
31
2020
03

使用final关键字修饰一个变量时,是引用不能变,还是引用的对象不能变?

使用final关键字修饰一个变量时,是指引用变量不能变,引用变量所指向的对象中的内容还是可以改变的。例如,对于如下语句: finalStringBuffer a=new StringBuffer("immutable");执行如下语句将报告编译期错误:a=new StringBuffer("");但是,执行如下语句则可以通过编译:a.append(" broken!");有人在定义方法的参数时,可能想采用如下形式来阻止方法内部
31
2020
03

用最有效率的方法算出2乘以8等於几?

  2<< 3,(左移三位)因为将一个数左移n位,就相当于乘以了2的n次方,那么,一个数乘以8只要将其左移3位即可,而位运算cpu直接支持的,效率最高,所以,2乘以8等於几的最效率的方法是2<< 3。
31
2020
03

char型变量中能不能存贮一个中文汉字?为什么?

char型变量是用来存储Unicode编码的字符的,unicode编码字符集中包含了汉字,所以,char型变量中当然可以存储汉字啦。不过,如果某个特殊的汉字没有被包含在unicode编码字符集中,那么,这个char型变量中就不能存储这个特殊汉字。补充说明:unicode编码占用两个字节,所以,char类型的变量也是占用两个字节。
31
2020
03

switch语句能否作用在byte上,能否作用在long上,能否作用在String上?

 在switch(e)中,e只能是一个整数表达式或者枚举常量(更大字体),整数表达式可以是int基本类型或Integer包装类型,由于byte,short,char都可以隐含转换为int,所以,这些类型以及这些类型的包装类型也是可以的。显然,long和String类型都不符合switch的语法规定,并且不能被隐式转换成int类型,所以,它们不能作用于swtich语句中。switch语句能否作用在String上说错了,Java1.7之后已经支持这种写法了!
31
2020
03

在JAVA中如何跳出当前的多重嵌套循环?

 在Java中,要想跳出多重循环,可以在外面的循环语句前定义一个标号,然后在里层循环体的代码中使用带有标号的break语句,即可跳出外层循环。例如:for(int i=0;i<10;i++){   for(intj=0;j<10;j++){       System.out.println(“i=” + i + “,j=” + j);       if(j == 5) bre
31
2020
03

说说&和&&的区别。

  &和&&都可以用作逻辑与的运算符,表示逻辑与(and),当运算符两边的表达式的结果都为true时,整个运算结果才为true,否则,只要有一方为false,则结果为false。        &&还具有短路的功能,即如果第一个表达式为false,则不再计算第二个表达式,例如,对于if(str!= null&& !str.equals(s))表达式,当str为null时,后面的表达式不会执行
31
2020
03

Java有没有goto?

  java中的保留字,现在没有在java中使用。
31
2020
03

一个".java"源文件中是否可以包括多个类(不是内部类)?有什么限制?

可以有多个类,但只能有一个public的类,并且public的类名必须与文件名相一致。
31
2020
03

追加一个双重锁定的单例模式

using System;using System.Collections.Generic;/// <summary>/// 适用于在多线程的情况下保证只有一个实例化对象的情况,例如银行的操作系统/// </summary>namespace DoubleLockInstance{ //---------------------------------- // 双重锁定单例 public sealed class Singleton 
31
2020
03

现有一个整数number,请写一个方法判断这个整数是否是2的N次方

答:private static bool GetFlag(int num)        {        if (num < 1) return false;        return (num & num - 1) == 0;     }
31
2020
03

请写出C#中的单例模式

答:  public class Single    {        private static Single instance;        private Single (){}        public static Single GetInstance ()        {  &n
31
2020
03

类的私有成员会被子类继承吗?请说明原因。

答:会被子类继承,但是不能被访问。所以看上去是不能被继承的,实际上确实被继承了。
31
2020
03

接口和抽象类的区别是什么?

答:接口中所有的方法都不能有实现,并且不能指定方法的修饰符    抽象类中可以有方法的实现,也可以指定方法的访问修饰符    第一个继承接口的类必须实现接口里的所有方法    而抽象类中抽象方法的实现是由第一个非抽象的派生类来实现
31
2020
03

什么时候必须声明一个类为抽象类?

答:(1)当这个类中有抽象方法的时候,必须声明类为抽象类       (2)该类没有完全实现父类的抽象方法时,也需要声明为抽象类
31
2020
03

const和readonly有什么区别?

答:const关键字用来声明编译时的常量      readonly用来声明运行时的常量
31
2020
03

请问能设置类A可被继承,但类A中的某个方法不能被重写吗?

答:能,将类A的修饰符标记为public、标记类A中的不允许重写的方法为sealedsealed关键字不仅可以限制类,也可以限制方法。
31
2020
03

请简略描述重载和重写的区别?

答:方法重载提供了一个相同的方法但是方法签名的参数不同的调用的实现。      重写提供了子类中改变父类方法行为的实现。
31
2020
03

我们都知道一个类可以有多个构造函数,并且C#会在我们创建类的时候默认的提供一个无参的构造函数,当我实现了另外一个有参数的构造函数的时候,我还能调用无参数的构造函数吗?请说明原因。

答:不能,因为一旦你实现了一个构造函数,C#就不会再提供默认的构造函数了,所以需要自己手动写入一个无参数的构造函数。
31
2020
03

C#中类是否支持多继承?请说明原因。

答:不支持,需要用接口来实现多继承