工作地点
:杭州
职位
:Java开发工程师(阿里巴巴集团B2B公司网站技术部)
有意者请把简历发给madding.lip@alibaba-inc.com!
1)合适者我们会先进行电话面试
2)通过者再当面约见,形式通常为多对一
有意者请发邮件给我,注明电话等基本联系信息。 ......
不能好高骛远,从写小程序开始。
一个没隔N分钟就提醒休息一下的小程序,嗯,还只是一个挺简陋的东西,而且还发现一点现在我无法解决的bug。
/**
* 休息提醒小程序
* 存在问题是:单击时(不分左击右击),同时会在任务栏出现程序(因为这个托盘功能是参考网上例程
* 写的,不知道该如何避免这个问题);
* 如果此时点击任务栏显示程序窗口,那么程序会出错,因为实际上还认为程序驻留在托盘,所以再次
* 最小化时程序出错。
* @author deng
* @version 2010/03/13
*/
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.util.Timer;
import java.util.TimerTask;
@SuppressWarnings("serial")
public class notice extends JFrame implements ActionListener{
private int inTime = 2700000;
private Timer timer;
private JTextField interTime = new JTextField("45", 5);
private JLabel timeLabel = new JLabel("min 一次");
private JButton confButton = new JButton("开始");
private JButton cancelButton = new JButton("取消");
private JCheckBox turnOn = new JCheckBox("开启", true); ......
Java面试题及答案(基础题122道)
JAVA相关基础知识
1、面向对象的特征有哪些方面
1.抽象:
抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。抽象包括两个方面,一是过程抽象,二是数据抽象。
2.继承:
继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法。对象的一个新类可以从现有的类中派生,这个过程称为类继承。新类继承了原始类的特性,新类称为原始类的派生类(子类),而原始类称为新类的基类(父类)。派生类可以从它的基类那里继承方法和实例变量,并且类可以修改或增加新的方法使之更适合特殊的需要。
3.封装:
封装是把过程和数据包围起来,对数据的访问只能通过已定义的界面。面向对象计算始于这个基本概念,即现实世界可以被描绘成一系列完全自治、封装的对象,这些对象通过一个受保护的接口访问其他对象。
4. 多态性:
多态性是指允许不同类的对象对同一消息作出响应。多态性包括参数化多态性和包含多态性。多态性语言具有灵活、抽象、行为共享、代码共享的优势,很好的解决了应用 ......
刚学GIS,做个设置地图中点就出了麻烦 !但是一直就是设置不正确,搞了N久;后来发现问题在于设置的地图边界高度及宽度要与页面对应的输出处的高度及宽度要一致。
也就是:
myMap.setDeviceBounds(new DoubleRect(0, 0, m_mapWidth, m_mapHeight));
m_mapWidth, m_mapHeight 的值要与下面的width,height一致;
<input id="map" type="image" src="/map/MapServlet" onclick="javascript:getPoint()" height="560" width="980">
为什么这样呢?不知道谁能解释,以前都没接触GIS这方面的东西什么都不知道;反正暂时问题解决了,可以继续往前走了……
设置中点也就如下代码: DoublePoint newPoint = myMap.getCenter();
if ((reqParam = request.getParameter("ptx"))!=null) {
xStr = new Double(reqParam);
}
if ((reqParam = request.getParameter("pty"))!=null) {
yStr = new Double(reqParam);
}
if(xStr != null && yStr != null)
{
// Transform GIF coordinate to real world coordinate
DoublePoint screenPoint ......
JAVA红黑树
概念:每个节点都带有颜色属性的二叉查找树,颜色或红色或黑色;
特性:
性质1. 节点是红色或黑色。
性质2. 根是黑色。
性质3. 每个红色节点的两个子节点都是黑色。(从每个叶子到根的所有路径上不能有两个连续的红色节点)
性质4. 从任一节点到其每个叶子的所有路径都包含相同数目的黑色节点。
性能:O(log n)的时间之外,每次插入或删除需要O(log n)的空间。
实现:
JAVAQueue:用linkedlist写的队列
import java.util.LinkedList;
public class JavaQueue {
/**
* @param args
*/
private LinkedList list = new LinkedList();
public void push(Object v) {
list.addFirst(v);
}
public Object pop() {
return list.removeFirst();
}
public Object get() {
return list.removeLast();
}
public boolean isEmpty(){
return list.isEmpty();
}
}
JAVAStack:用linkedlist写的堆栈
import java.u ......
多线程的同步依靠的是对象锁机制,synchronized关键字的背后就是利用了封锁来实现对共享资源的互斥访问。
下面以一个简单的实例来进行对比分析。实例要完成的工作非常简单,就是创建10个线程,每个线程都打印从0到99这100个数字,我们希望线程之间不会出现交叉乱序打印,而是顺序地打印。
先来看第一段代码,这里我们在run()方法中加入了synchronized关键字,希望能对run方法进行互斥访问,但结果并不如我们希望那样,这是因为这里synchronized锁住的是this对象,即当前运行线程对象本身。代码中创建了10个线程,而每个线程都持有this对象的对象锁,这不能实现线程的同步。代码package com.vista;
class MyThread implements java.lang.Runnable
{
private int threadId;
public MyThread(int id)
{
this.threadId = id;
}
@Override
public synchronized void ru ......