面试题
一、“”和null的区别:
相同:都是字符串赋值。
不相同:1、null
表
关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf
示无分配内存空间,使用即可开辟。(什么时候使用什么时候开辟)(可以赋值给任何对象)
2、“”表示一个长度的空间。(只能赋值给字符串对象)
说明:使用null与“”需结合业务,决定是否使用null或“”。
二、软件开发周期:
1、需求
分析
定性数据统计分析pdf销售业绩分析模板建筑结构震害分析销售进度分析表京东商城竞争战略分析
(2 / 3时间)
2、概要设计。
3、详细设计。
4、软件测试。
5、部署维护。
三、where与having的区别:
where 先条件 后分组
having 先分组 后条件
四、存储过程类型:
系统存储过程和自定义存储过程
五、get和post区别面试:
get:以超链接方式进行进行提交,传送数据时不能大于2kb,传输数据不太安全。
post:以按钮方式进行提交,传送数据没有限制,传输数据比较安全(文本或文件形式)
六、css布局三种方式:
1、默认文档流方式:
以默认的html元素的结构顺序显示
2、浮动布局方式:
通过设置html元素的float属性显示
3、定位布局方式:
通过设置html元素的position属性显示
七、绝对定位(position:absolute)和相对定位(position:relative)的区别:
绝对定位是父元素为基准点,进行定位(会脱离文档流)。
相对定位是根据其自身为基准点,进行定位(离开原位置),但是还占着原来的空间。
八、jquery的ready和dom的onload的区别:
Onload是所有dom元素创建完毕,图片、css都加载完毕后才会被触发,而ready则是dom元素创建完毕后被触发,这样可以提高网页的响应速度,在jquery是也可以用$(window).onload来实现onload那种事件调用的时机(ready>onload)
九、类是具有相同属性和方法的集合(数据结构)
说明:类有两个成员:属性、方法
在项目中,一个类就是一个文件(禁止多个类)
类是面向对象的基本单位
说明:类的关键字class,而不是Class(反射机制)
十、权限修饰符:
private(私有的) friendly(默认的) protected(保护的) public(公有的)
范围:
访问修饰符 本类 同包 子类 其他
private √
friendly √ √
protected √ √ √
public √ √ √ √
说明:private < friendly < protected < public
十一、成员变量和局部变量的区别:
1、 在类中位置不同:
成员变量(属性、字段[实体]):在类中方法外
局部变量:在方法定义中或方法声明上
2、 在内存中位置不同:
成员变量:在堆内存
局部变量:在栈内存
3、 生命周期不同:
成员变量:随着对象的创建而存在,随着对象的消失而消失。
局部变量:随着方法的调用而存在,随着方法调用完毕而消失。
4、 初始值不同:
成员变量:有默认初始化值(特殊对象this)
局部变量:没有默认初始化值,必须定义、赋值,然后才能使用。
注意事项:局部变量名称可以和成员变量名称一样,在方法中使用的时候,采用的是就近原则。
十二、静态代码块、构造代码块、构造方法执行区别?
静态代码块——>构造代码块——>构造方法——>普通方法
静态代码块:只执行一次
构造代码块:每次调用构造方法都执行
十三、this与super的使用:
1、 调用成员变量:
this.成员变量 调用本类的成员变量
super.成员变量 调用父类的成员变量
2、 调用构造方法:
this( ) 调用本类的构造方法
super( ) 调用父类的构造方法
3、 调用成员方法:
this.成员方法 调用本类的成员方法
super.成员方法 调用父类的成员方法
注意事项:
1、 如果父类没有无参构造方法,那么子类构造方法会报错
2、 解决:
1) 在父类中加一个无参构造方法
2) 通过使用super关键字去显示的调用父类的带参构造方法
3) 子类通过this去调用本类的其他构造方法
子类中一定要有一个去访问了父类的构造方法,否则父类数据就没有初始化。
十四、抽象类:
1、 抽象类禁止实例化
类禁止实例化:
1) 构造函数为私有
2) 抽象类
2、 抽象方法语法:
public abstract void made();
说明:抽象方法无方法体
抽象方法必须出现在抽象类中,但是抽象类可以有抽象方法或无抽象方法。
抽象方法表示子类必须重写父类的方法(父类的强制)。
说明:强迫子类完成指定的行为,规定其子类需要用到的“
标准
excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载
”行为
十五、方法重写和方法重载区别?方法重载能改变返回值类型吗?
方法重写:在子类中,出现和父类中一模一样的方法声明的现象。
方法重载:同一个类中,出现的方法名相同,参数列表不同现象。
方法重载能改变返回值类型,因为它和返回值类型无关。
十六、多态的优点与弊端:
优点:1、提高了程序的维护性(由继承保证)
2、提高了程序的扩展性(由多态保证)
弊端:1、不能访问特有功能
2、访问:多态中的转型
十七、接口成员特点:
1、 成员变量:
>>只能是变量
>>默认修饰符
2、 构造方法
>>没有,因为接口主要是扩展功能的,而没有具体存在
3、 成员方法:
>>只能是抽象方法
>>默认修饰符public abstract
十八、public class Teacher{
public int num = 10;
public class Student{
public int num = 20;
public void show{
int sum = 30;
System.out.println(“__A__”);
System.out.println(“__B__”);
System.out.println(“__C__”);
}
}
}
答案:A:num
B:this.num
C:Teacher.this.num或new Teacher( ).num
十九、数组和集合:
A:长度区别:
数组长度固定
集合长度可变
B:
内容
财务内部控制制度的内容财务内部控制制度的内容人员招聘与配置的内容项目成本控制的内容消防安全演练内容
不同:
数组存储的是同一种类型的元素
而集合可以存储不同类型的元素
C:元素的数据类型:
数组可以存储基本数据类型
集合只能存储引用数据类型
二十、Collection
总结
初级经济法重点总结下载党员个人总结TXt高中句型全总结.doc高中句型全总结.doc理论力学知识点总结pdf
:
Collection
|
—————————
| |
List Set
| |
————— ——————————
| | | | | |
ArrayList Vector LinkedList HashSet LinkedHashSet TreeSet
List:不唯一(重复) 有序(插入顺序)
ArrayList:查询快 增删慢 线程不安全 效率高
Vector:查询快 增删慢 线程安全 效率低
LinkedList:查询慢 增删快 线程不安全 效率高(链表形式)
Set:唯一 无序
HashSet:唯一(hashcode和equals)、无序
LinkedSet:唯一(hash和equals)、有序(写和取一致)
TreeSet:唯一、有序(自然、比较器)
二十一、Map集合和Collection集合区别:
Map集合存储元素是成对出现的,Map集合的键是唯一的,值是可重复的。
Collection集合存储元素是单独出现的,Collection的儿子Set是唯一的,List是可重复的。
二十二、实体特点:
实体是存储数据容器。
属性是私有的。
方法是对私有属性的get和set,且方法是公有的。
属性类型为原型。
实体必须有一个构造函数。
实体类最好实现java.io.Serializable,支持序列化机制。
在分层结构中,不同层之间通过实体类来传输数据。
二十三、final:最终的意思,可以修饰类、方法和变量。
它修饰的类,不能被继承。
它修饰的方法,不能被重写。
它修饰的变量,不能被改变。
finally:是异常处理的一部分,用于释放资源的,它控制的代码永远会执行
特殊情况:在执行到finally之前,JVM退出了。
finalize:是object类的一个方法,用于垃圾回收。
二十四、
short s1 = 1;s1 = s1+1 什么错?
short s1 = 1;s1 += 1 什么错?
前者有错,s1会自动提升为int类型,结果赋值给short类型所以报错。
后者无措,+=这种赋值运算符隐含了强制类型转换。
二十五、进程和线程:
进程:正在运行的程序,是系统进行资源分配和调用的独立单位,每一个进程都有它自己的内存空间和系统资源。
线程:是进程中的单个顺序控制流,是一条执行路径,一个进程如果只有一条执行路径,则称为单线程程序,一个进程如果有多条执行路径,则称为多线程程序。
并行和并发的区别:
前者是逻辑上同时发生,指在某一个时间内同时运行多个程序,后者是物理上同时发生,指在某一个时间点同时运行多个程序。
二十六、
JVM虚拟机的启动是单线程还是多线程的?
答案:多线程的。
原因是垃圾回收线程也要先启动,否则很容易发现内存溢出。
现在的垃圾回收线程加上前面的主线程,最低启动了两个线程,所以,JVM的启动其实是多线程的。
二十七、run()和start()的区别:
run():仅仅是封装被线程执行的代码,直接调用的是普通方法。
start():首先是启动线程,然后再由JVM去调用该程序的run()方法。
二十八、线程的生命周期:
1、 生命周期:
新建:创建线程对象。
就绪:有执行资格,没有执行权。
运行:有执行资格,也有执行权。
阻塞:由于一些操作让线程处理该状态。没有执行资格,没有执行权,而另一些操作却可以把它给激活。激活后处理处于就绪状态。
死亡:线程对象变化垃圾,等待被回收。
被别人取走cpu的执行权
start()
新建创建线程对象 就绪(有执行资格,没有执行权)
sleep() 获取cpu的执行权
sleep() run()结束
阻 塞 运 行 死 亡
wait() 中断线程
二十九、HQL与SQL的区别:
HQL:hql操作对象是类、实例及属性等。
SQL:操作对象是数据表和字段等。
三十、查询全部数据:
A:String hql = “select * from Student”; (×)
| |
对象1 对象2
说明:一条hql语句只允许一次实例化,不允许有多个对象(多个实例化),所以错误。
B:String hql = “ from Student”; (√)
说明:>>:实质:Student stu = new Student();
>>:实体必须一个构造函数。
三十一、数据库JDBC不足:
1、 数据库连接不足:使用时就创建,不使用立即释放,对数据库进行频繁连接开启和关闭造成数据库资源浪费,影响数据库性能。
解决:使用数据库连接池管理数据库连接。
2、 将sql语句硬编码(写死)到java代码中,如果sql语句修改,需要重新编译java代码,不利于系统维护。
解决:将sql语句配置到xml配置文件中,即使sql变化不需要对java代码进行重新编译。
3、 向PreparedStatament中,设置参数,对占位符位置和设置参数值,硬编码在java代码中,不利于系统维护。
解决:将sq语句及占位符和参数全部配置到xml中。
4、 ResultSet中遍历结果集数据时,存在硬编码将获取表的字段进行编码,不利于系统维护。
解决:将查询的结果集,自动映射成java对象。
说明:解决以上jdbc的4个不足,所以我们需要引入框架。