深圳有为JAVA笔试
深圳有为JAVA笔试
1.定义一个线程类有几种方法?分别是什么?
答:两种方法,一种继承Thread类,重写run()方法,第二种实现runnable接口,实现run()方法。
2.抽象类和接口的区别?
答:(1)抽象类可以有非抽象方法,接口的方法都是抽象。(2)抽象类可以有构造方法,接口没有构造方法。(3)抽象类中抽象方法的访问修饰符可以是public,protected,接口中必须是public,且默认是public abstract(4)抽象类中可以有普通成员属性,接口中没有普通成员属性 (5)一个类只能实现一个类,一个类可以继承多个接口。(6)抽象类和接口中的都可以有静态的成员属性,抽象类中静态成员属性可以是任意的,接口中的只能是public static final
3.面向对象的特征有哪些方面?
答:封装、继承、多态、抽象
4.在java中,数组是基本数据类型吗?
不是
5.long和Long的区别
答:long:基本数据类型,Long包装类
6.|和||的区别
答:||表示逻辑或,且有短路的功能。|还有按位或运算的意思。
7.char型变量能不能存储一个中文汉字
答:可以。
8.是否可以继承String类
答:否
9.hashtable和hashmap的区别
答:hashtable线程安全,hashmap线程不安全。且hashmap允许空键值,hashtable不行。
10.如何实现多态?写一实现多态的代码,并说明一下。
List list=new ArrayList();
父类型的引用指向子类对象
11.final,finally,finalize的区别
答:(1)final是修饰符,用来修饰变量,方法和类,分别表示变量不可变,方法不可覆盖,类不可继承,
(2)finally是处理异常的一部分,表示总是不能执行。
(3)finalize是object的一个方法,在垃圾收集器执行的时候回调用此对象的此方法。
12.synchronized关键字的用法?
答:同步代码块和同步方法。
13.下面一段程序会输出什么?
|
public class Test2 { public static void main(String[] args) { A a=new B(); a.display(); } } class A{ protected int val=1000; static{ System.out.println("A static"); } public A(){ val++; System.out.println("A construtor(),val="+val); } public void display(){ val++; System.out.println("A display(),val="+val); } } class B extends A{ static{ System.out.println("B static"); } public B(){ val++; System.out.println("B constructor(),val="+val); } public void display(){ val++; System.out.println("B constructor(),val="+val); } } |
输出结果:
|
A static B static A construtor(),val=1001 A construtor(),val=1002 A construtor(),val=1003 |
14.编程题:用最有效的方法算出2乘以16等于几?
2<<4
15.如何判断一个单链表是有环的?并用你的算法实现。
设置两个指针(fast, slow),初始值都指向头,slow每次前进一步,fast每次前进二步,如果链表存在环,则fast必定先进入环,而slow后进入环,两个指针必定相遇。(当然,fast先行头到尾部为NULL,则为无环链表)
程序如下:
|
bool IsExitsLoop(slist *head) { slist *slow=head, *fast= head; while ( fast &&fast->next ) { slow = slow->next; fast = fast->next->next; if ( slow ==fast ) break; } return !(fast == NULL || fast->next == NULL); } |
16说出servlet的生命周期,并说出servlet与CGI的区别、
答:(1)servlet被服务器实例化后,容器运行其init()方法,请求到达service方法,service方法自动派遣运行与请求对应的doget或dopost方法,当服务器决定将实例销毁的时候,调用其destroy方法。
(2)servlet处于服务器进程中,他通过多线程的方式运行其service方法,一个实例可以服务于多个请求,并且其实例一般不会销毁,而CGI对每个请求都产生新的进程,服务完成后就销毁,所以效率上低于servlet。
17.写出你所知道的设计模式?
答:单例模式,观察者模式,工厂模式,装饰模式,代理模式,适配器模式。
18.数据库表结构如下
Student(S#,sname,ssex) 学生表
Course(C#,cname,T#)课程表
SC(S#,C#,score)成绩表
Teacher(T#,tname)教师表
试用sql语句描述
A:查出学生“小张”所选的所有课程。
B:查出选修课程“数学”且成绩及格的学生
C:删除学生“小王”的所有成绩记录
D:将教师”李老师”的所教课程的所有学生的成绩加5分。
A:
|
select c.cname from student s1,course c,sc s2 where s1.sid=s2.sid and c.cid=s2.cid and s1.sname='小张'; |
B
|
select s1.* from student s1,course c,sc s2 where s1.sid=s2.sid and c.cid=s2.cid and c.cname='数学' and s2.score>60; |
C子查询
|
delete from sc where sid=(select sid from student where sname='小王'); |
D
|
update sc set score=score+5 where cid=(select cid from course where tid =(select tid from teacher where tname='李老师')); |
加强练习:http://www.cnblogs.com/zengxiangzhan/archive/2009/09/23/1572276.html
测试数据库建表语句
|
/* Navicat MySQL Data Transfer Source Server : localhost_3306 Source Server Version : 50627 Source Host : localhost:3306 Source Database : test_mianshi Target Server Type : MYSQL Target Server Version : 50627 File Encoding : 65001 Date: 2016-10-22 21:16:47 */ SET FOREIGN_KEY_CHECKS=0; -- ---------------------------- -- Table structure for `course` -- ---------------------------- DROP TABLE IF EXISTS `course`; CREATE TABLE `course` ( `cid` int(11) NOT NULL DEFAULT '0', `cname` varchar(50) DEFAULT NULL, `tid` int(11) NOT NULL DEFAULT '0', PRIMARY KEY (`cid`,`tid`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; -- ---------------------------- -- Records of course -- ---------------------------- INSERT INTO `course` VALUES ('1', '数学', '1'); INSERT INTO `course` VALUES ('2', '英语', '2'); INSERT INTO `course` VALUES ('3', '语文', '3'); -- ---------------------------- -- Table structure for `sc` -- ---------------------------- DROP TABLE IF EXISTS `sc`; CREATE TABLE `sc` ( `sid` int(11) NOT NULL DEFAULT '0', `cid` int(11) NOT NULL DEFAULT '0', `score` int(11) DEFAULT NULL, PRIMARY KEY (`sid`,`cid`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; -- ---------------------------- -- Records of sc -- ---------------------------- INSERT INTO `sc` VALUES ('1', '1', '60'); INSERT INTO `sc` VALUES ('1', '2', '70'); INSERT INTO `sc` VALUES ('1', '3', '80'); INSERT INTO `sc` VALUES ('2', '1', '90'); INSERT INTO `sc` VALUES ('2', '3', '85'); INSERT INTO `sc` VALUES ('3', '1', '90'); INSERT INTO `sc` VALUES ('3', '2', '80'); INSERT INTO `sc` VALUES ('3', '3', '50'); -- ---------------------------- -- Table structure for `student` -- ---------------------------- DROP TABLE IF EXISTS `student`; CREATE TABLE `student` ( `sId` int(11) NOT NULL AUTO_INCREMENT, `sname` varchar(50) DEFAULT NULL, `ssex` varchar(50) DEFAULT NULL, PRIMARY KEY (`sId`) ) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8; -- ---------------------------- -- Records of student -- ---------------------------- INSERT INTO `student` VALUES ('1', 'tom1', '男'); INSERT INTO `student` VALUES ('2', '小张', '男'); INSERT INTO `student` VALUES ('3', '小王', '男'); -- ---------------------------- -- Table structure for `teacher` -- ---------------------------- DROP TABLE IF EXISTS `teacher`; CREATE TABLE `teacher` ( `tid` int(11) NOT NULL DEFAULT '0', `tname` varchar(50) DEFAULT NULL, PRIMARY KEY (`tid`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; -- ---------------------------- -- Records of teacher -- ---------------------------- INSERT INTO `teacher` VALUES ('1', '李老师'); INSERT INTO `teacher` VALUES ('2', '王老师'); INSERT INTO `teacher` VALUES ('3', '张老师'); |
19.对于大型并发网络通信系统设计,需要考虑哪些方面(选做)?
1.静态资源:cdn,大带宽,缓存
2.动态资源:多开服务器,负载均衡,集群。
参考案例:http://www.infoq.com/cn/articles/weixin-bonus-load
20.如何提高大吞吐量数据插入数据库的效率(选做)?
1. 加大服务器内存,把大吞吐量数据涉及的表缓存在内存中,对库表的操作就变成了对内存的操作而不需要访问硬盘。因为硬盘的读写速度是机械运动的速度而内存读写的速度是电的速度, 它们的速度差别在1000倍以上.
2. 利用服务器端光标, 批量地刷新数据库.
21.对计算机哪一方面有深入研究,并简要说明(选做)?
深圳有为JAVA笔试的更多相关文章
- Java笔试面试题整理第八波
转载至:http://blog.csdn.net/shakespeare001/article/details/51388516 作者:山代王(开心阳) 本系列整理Java相关的笔试面试知识点,其他几 ...
- Java笔试面试题整理第六波(修正版)
转载至:http://blog.csdn.net/shakespeare001/article/details/51330745 作者:山代王(开心阳) 本系列整理Java相关的笔试面试知识点,其他几 ...
- Java笔试面试题整理第五波
转载至:http://blog.csdn.net/shakespeare001/article/details/51321498 作者:山代王(开心阳) 本系列整理Java相关的笔试面试知识点,其他几 ...
- Java笔试面试题整理第四波
转载至:http://blog.csdn.net/shakespeare001/article/details/51274685 作者:山代王(开心阳) 本系列整理Java相关的笔试面试知识点,其他几 ...
- Java笔试面试题整理第三波
转载至:http://blog.csdn.net/shakespeare001/article/details/51247785 作者:山代王(开心阳) 本系列整理Java相关的笔试面试知识点,其他几 ...
- Java笔试面试题整理第二波
转载至:http://blog.csdn.net/shakespeare001/article/details/51200163 作者:山代王(开心阳) 本系列整理Java相关的笔试面试知识点,其他几 ...
- Java笔试面试题整理第一波
转载至:http://blog.csdn.net/shakespeare001/article/details/51151650 作者:山代王(开心阳) 本系列整理Java相关的笔试面试知识点,其他几 ...
- 应聘Java笔试时可能出现问题及其答案
有感:应聘Java笔试时可能出现问题及其答案 huij 前段时间因为要参加一个笔试,在准备期间在网上找到了两条关于笔试题目的文章,其中一篇为<<有感:应聘Java笔试时可能出现问题> ...
- Java笔试面试题007
Java笔试面试题007 1.请用正則表達式匹配出QQ号(如果QQ号码为5-10位). 解答: ^ \d{5,10}$ 2.String, StringBuffer StringBuilder的差别. ...
随机推荐
- 1.Redis Lock
使用场景 同步锁,让业务方法在锁设定的时间内是同步执行的 redisService.setIfAbsent redisService.expire @PostMapping("/update ...
- 关于"touchstart与click同时触发"问题
点击事件可以分解成多个事件: 在移动端,手指点击一个元素,会经过:touchstart --> touchmove -> touchend --> click 由于移动设备能够同时 ...
- C# .net framework .net core 3.1 请求参数校验, DataAnnotations, 自定义参数校验
前言 在实际应用场景中我们常常要对接口的入参进行校验, 例如分页大小是否正确, 必填参数是否已经填写等等. 最简单的实现方式如下图, 这种在实际开发中代码过于冗余, 而且不灵活. 今天介绍一种统一参数 ...
- Censoring【KMP算法+堆栈模拟】
Censoring 传送门:链接 来源:UPC8203 题目描述 Farmer John has purchased a subscription to Good Hooveskeeping ma ...
- Com训练_1
初次接触Com大概是2001年,离现在多年了,那时认识比较肤浅,再次接触学习下. //ComPort + D7, 稍后将训练ComPort6 + D10.3.2环境 //MSComm + D7,D10 ...
- 恕我直言你可能真的不会java第1篇:lambda表达式会用了么?
本文配套教学视频:B站观看地址 在本号之前写过的一些文章中,笔者使用了lambda表达式语法,一些读者反映说代码看不懂.本以为java 13都已经出了,java 8中最重要特性lambda表达式大家应 ...
- Pytorch中的自动求梯度机制和Variable类
自动求导机制是每一个深度学习框架中重要的性质,免去了手动计算导数,下面用代码介绍并举例说明Pytorch的自动求导机制. 首先介绍Variable,Variable是对Tensor的一个封装,操作和T ...
- python_lesson1 数学与随机数 (math包,random包)
math包 math包主要处理数学相关的运算.math包定义了两个常数: math.e # 自然常数e math.pi # 圆周率pi 此外,math包还有各种运算函数 (下面函数的功能可以 ...
- Java并发编程的艺术(一、二章) ——学习笔记
第一章 并发编程的挑战 需要了解的一些概念 转自 https://blog.csdn.net/TzBugs/article/details/80921351 (1) 同步VS异步 同步和异步通常用来 ...
- 二叉查找树、平衡二叉树(AVLTree)、平衡多路查找树(B-Tree),B+树
B+树索引是B+树在数据库中的一种实现,是最常见也是数据库中使用最为频繁的一种索引. B+树中的B代表平衡(balance),而不是二叉(binary),因为B+树是从最早的平衡二叉树演化而来的. 在 ...