1.下列程序的运行结果
public
static
void
main(String args[]) {
Thread t =
new
Thread() {
public
void
run() {
pong();
}
};
t.run();
System.out.print(
"ping"
);
}
static
void
pong() {
System.out.print(
"pong"
);
}
- pingpong
- pongping
- pingpong和pongping都有可能
- 都不输出
- ArrayList
- Vector
- Hashtable
- Stack
- HashMap
- LinkedList
在集合框架中,有些类是线程安全的,这些都是jdk1.1中的出现的。在jdk1.2之后,就出现许许多多非线程安全的类。 下面是这些线程安全的同步的类:
vector:就比arraylist多了个同步化机制(线程安全),因为效率较低,现在已经不太建议使用。在web应用中,特别是前台页面,往往效率(页面响应速度)是优先考虑的。
statck:堆栈类,先进后出。Stack继承了Vector,所以线程也是安全的
hashtable:就比hashmap多了个线程安全
enumeration:枚举,相当于迭代器
Java提供的线程安全的Queue可以分为 阻塞队列和非阻塞队列 ,其中阻塞队列的典型例子是BlockingQueue,非阻塞队列的典型例子是ConcurrentLinkedQueue,在实际应用中要根据实际需要选用阻塞队列或者非阻塞队列。
A 、 ARP B 、 DNS C 、 TCP D 、 ICMP
DNS 是将域名 www.taobao.com 映射成主机的 IP 地址, ARP 是将 IP 地址映射成物理地址, ICMP 是报文控制协议,与ping相关。而一个 ping 命令并不会建立一条 TCP 连接,故没有涉及 TCP 协议。
A,android:secondaryProgress B,android:progress C,android:max D,style
5.请解释RPC。
什么是RPC?Remote Procedure Call,远程过程调用。也就是说,调用过程代码并不是在调用者本地运行,而是要实现调用者与被调用者二地之间的连接与通信。比较严格的定义是:Remote procedure call (RPC) is a protocol that allows a computer program running on one computer to cause a subroutine on another computer to be executed without the programmer explicitly coding the details for this interaction. When the software in question is written using object-oriented principles, RPC may be referred to as remote invocation or remote method invocation. 这样一讲,容易联想到C/S模式的程序设计。RPC的基本通信模型是基于Client/Server进程间相互通信模型的一种同步通信形式;它对Client提供了远程服务的过程抽象,其底层消息传递操作对Client是透明的。在RPC中,Client即是请求服务的调用者(Caller),而Server则是执行Client的请求而被调用的程序(Callee)。
- 新生代 GC(Minor GC):指发生在新生代的垃圾收集动作,因为 Java 对象大多都具
备朝生夕灭的特性,所以 Minor GC 非常频繁,一般回收速度也比较快。
- 老年代 GC(Major GC / Full GC):指发生在老年代的 GC,出现了 Major GC,经常
会伴随至少一次的 Minor GC(但非绝对的,在 ParallelScavenge 收集器的收集策略里
就有直接进行 Major GC 的策略选择过程) 。MajorGC 的速度一般会比 Minor GC 慢 10
倍以上。
自底向上分析方法是一种移进—归约过程,当分析的栈顶符号串形成句柄时就采取归约动作,因而自底向上分析法的关键问题是在分析过程中如何确定句柄。LR分析法正是给出一种能根据当前分析栈中的符号串(通常以状态表示)和向右顺序查看输入串的K个(K≥0))符号就可唯一地确定分析器的动作是移进还是归约和用哪个产生式归约,因而也就能唯一地确定句柄,所以LR分析过程是一种规范归约过程。 |
8.请解释LRU。
LFU是最近最不常用页面置换算法(Least Frequently Used),也就是淘汰一定时期内被访问次数最少的页!
9.请解释github。
GitHub 使用 Git 作为版本控制系统(version control system),提供在线源码托管的服务。同时是一个有社交功能的开发者社区。
10.请解释cdn。
内容分发网络其基本思路是尽可能避开互联网上有可能影响数据传输速度和稳定性的瓶颈和环节,使内容传输的更快、更稳定。通过在网络各处放置节点服务器所构成的在现有的互联网基础之上的一层智能虚拟网络,CDN系统能够实时地根据网络流量和各节点的连接、负载状况以及到用户的距离和响应时间等综合信息将用户的请求重新导向离用户最近的服务节点上。
10.SQL
结构化查询语言(英语:Structured Query Language,缩写:SQL), 是用于访问和处理数据库的标准的计算机语言。,IBM公司最早使用在其开发的数据库系统中。后来,美国国家标准学会对SQL进行规范后,以此作为关系式数据库管理系统的标准语言。
11.O2O
O2O(Online To Offline)模式,又称离线商务模式,是指线上营销线上购买带动线下经营和线下消费。O2O通过促销、打折、提供信息、服务预订等方式,把线下商店的消息推送给互联网用户,从而将他们转换为自己的线下客户,这就特别适合必须到店消费的商品和服务,比如餐饮、健身、电影和演出、美容美发、摄影及百货商店等.
12.SSD
固态硬盘(Solid State Disk,简称SSD)现在主要是指基于 NAND FLASH的半导体存储驱动器,由于被认为可以替代传统机械硬盘,我们又将其翻译为固态硬盘.固态硬盘具有传统机械硬盘不具备的快速读写、质量轻、能耗低以及体积小等特点,同时其劣势也较为明显,其价格仍较为昂贵,容量较低,一旦硬件损坏,数据较难恢复等;
动态代理类只能代理接口,代理类都需要实现InvocationHandler类,实现invoke方法。该invoke方法就是调用被代理接口的所有方法时需要调用的,该invoke方法返回的值是被代理接口的一个实现类
(1) final:修饰符(关键字),如果一个类被声明为final,意味着它不能再派生出新的子类,不能作为父类被继承。因此一个类不能既被声明为 abstract的,又被声明为final的。将变量或方法声明为final,可以保证它们在使用中不被改变。被声明为final的变量必须在声明时给定初值,而在以后的引用中只能读取,不可修改。被声明为final的方法也同样只能使用,不能重载。
(2) finally:在异常处理时提供 finally 块来执行任何清除操作。如果抛出一个异常,那么相匹配的 catch 子句就会执行,然后控制就会进入 finally块(如果有的话)。需要注意的一点是:无论是否产生异常,finally都会被执行。
17.
题目跟leetcode中的第139题是一样的。用一维DP即可。
18.
此道题目源自于编程之美2.4,原题是求1的数目,在这里是求0的个数。根据m和n的正负性,进行讨论。比如当m和n都为整数时,先统计0到n有多少个0,然后再统计0到m有多少个0,然后互减。
19.
这道题目,只需要层次遍历二叉树,然后用NULL来隔离上层和下层。遍历当前层时,用一个节点指针数组保存当前层的所有节点指针。当前层遍历结束后,再对这个指针数组进行操作。