java程序员招聘(精选11篇)
1.java程序员招聘 篇一
姓名:日期:时间:
1.请问您在开发中或学习中运用过哪些架构(struts,hibernate,spring,webwork,xword等),请谈谈您对所使用的架构的理解及使用心得?
2.请问您是否用JAVA开发过web service,请谈谈您对它的理解及心得。
3.请问您对LINUX的使用熟不熟?有没有在LINUX下配置过WEB 服务?LINUX下的常用命令你记得哪些?
4.有两个表,学生记录表(STU_ID,学生名称,班级名),学生成绩表(REC_ID,STU_ID,学科名,成绩分数),a)请写一个SQL语句,统计出每个学生的总成绩。
b)请写一个SQL语句,查出A学生B科的成绩。
5.您是否使用过EJB,请描述一下您对EJB的理解及使用心得。
6.请简要说明一下JAVA中的接口的用处。
7.请写一个简单的单例类,并说明一般在什么情况下会使用单例类,有什么好处。
2.java程序员招聘 篇二
1 需求分析
1.1 功能需求
当今的市场环境又是一个快速变化的环境, 市场需求在变, 对人才的需求也相应处于变化之中。如何能快速适应这一变化, 提高人才招聘流程的工作效率, 进行快速定位, 也就成为人才招聘公司需考虑的重要因素。
根据本系统的设计, 人才招聘系统具有以下功能: 登录、注册、浏览职位、搜索职位、查看职位详情、 申请职位、创建收藏夹等功能。
1.1.1 用户注册与登录
该功能提供注册、登录功能。对于首次使用本网站的用户首先要进行注册, 根据提示填写用户名、密码、真实姓名、手机号码、邮箱等相关信息, 提交之后发送邮箱链 接激活。通过录入账号和密码进行登录, 经过系统确认正确后, 即可进入下一步操作。
1.1.2 信息管理
该功能为用户提供信息修改功能。随着时间的推移, 用户的信息也是不断变化的, 用户登录本系统之后, 可以完善自己的个人信息。
1.1.3 浏览职位
该功能为求职者提供职位信息, 职位信息是由招聘者发布, 在求职者登录本系统之前, 该系统也能为求职者提供招聘的职位信息。求职者可以根据自己的求职意向, 选择自己喜欢的职业信息, 求职者可以将心仪的职位放到职位收藏夹中, 以便于自己做选择。
1.1.4 搜索职位
该功能为求职者提供职位搜索的功能, 求职者可以根据自己的兴趣爱好, 输入关键字搜索自己感兴趣的职位, 也可以根据职位类别、行业类别、工作地点等进行相关职位的查询搜索。
1.1.5 简历管理
该功能为求职者提供了创建简历、修改简历、以及简历的预览等功能。用户登录本系统之后, 可以创建新的 简历 ,并且求职者可以选择所创建简历的类型: 标准简历、文本简历、应届毕业简历。求职者创建简历之后, 也可以根据自己的需要修改简历, 求职者还可以对自己的简历进行预览。另外, 求职者在简历管理中, 还可以查看都有哪些企业曾经浏览过自己的简历。
1.1.6 求职信管理
该功能为求职者提供创建求职信、修改求职信、预览求职信的功能。求职信可以对求职者的求职起到 辅助的作 用 ,求职者根据自身的情况写求职信。此处创建的求职信, 可以在求职者申请职位的时候选择发送, 求职者根据自己的需要也可以选择不发送。
1.1.7 收藏职位
该功能为求职者提供了职位收藏的功能, 在这个模块中,求职者可以根据自身情况创建或者是删除职位收藏夹, 在求职浏览或者是搜索职位信息的时候, 对于感兴趣的职位进行收藏, 并保存到相应的位置收藏夹下, 方便求职者日后查看、关注该位置的信息动态。
1.1.8 申请职位
该功能为求职者提供申请职位的功能, 求职者找到工作满意的职位, 可以申请该职位, 申请职位的时候, 求职者可以针对职位选择投递自己不同的简历, 以及选择求职信, 选择是否发送求职信等操作。用户可以在搜索到合适的职位信息后, 直接提交申请, 提交职位申请需要选择一份简历, 然后提交职位申请。
1.2 安全需求
由于企业招聘的过程中, 应聘的人员会比较多, 所以在数据库的选择上必须要立足当前, 满足未来的需求。在数据的操作和传递的过程中, 尽可能地让系统自主工作, 减少手工操作, 降低出错率。系统的模块设计要便于系 统的扩展 ,开发的系统应能够长期满足该企业的发展需求。在设计上要具有标准性、保密性的特点。
1.3 性能需求
系统的性能已经成为系统优劣的一个重要指标, 在用户允许的时间范围内对系统操作动作作出反应, 可以有效提高系统的利用率, 减少不必要的误操作。本系统服务器要求能够7*24小时不间断工作, 重启和修复的时间不得超过半个小时; 能够至少维持10000人同时进行系统操作; 用户操作动作后服务器反应延迟时间在3秒以内。
2 系统设计
2.1 系统结构
根据系统的功能需求分析, 按功能进行模块化设计, 系统的功能结构如图1所示。
2.2 数据库
数据库采用当前比较流行的SQL 2010, 可以满足当前数据存取、转换、安全等方面的需求。对于数据在数据库中的存放, 必须了解各个数据之间的关系, E-R图可以清晰地对其进行描述。系统的E-R图如图2所示。
根据E-R图, 数据库中主要包含以下几个数据表: 账户管理信息表、权限信息表、用户基本信息表、 职位信息 表、企业基本信息表、工作经历信息表、受教育经历信息表等。
2.3 系统运行环境
根据系统的模块结构和数据库设计分析, 系统的开发和运行环境主要有:
(1) 服务器操作系统 : Windows 2007。
(2) Web服务器软件 : Eclipse3.7。
(3) 数据库软件 : SQL 2010。
(4) 客户端操作系统 : Windows操作系统。
(5) 客户端浏览器 : IE6.0以上版本。
3 系统实现
系统有多个模块组成, 在此对核心的模块进行详细的分析描述。
3.1 职位搜索模块
对于每个求职者来说, 都希望在网站系统中查找到自己所能够胜任的工作, 但社会上的企业众多, 企业不断地在系统中发布所需的工作岗位及岗位要求。如何在海量的招聘信息中查找到自己所需的岗位, 是系统必须解决的首要问题。
首先网站的用户登录到系统中, 进入到求职界面, 系统会将最新发布的求职信息展现出来, 但这些并不一定是用户所需要的。然后根据界面的提示, 录入相应的职位条件, 系统会对其合法性进行验证, 然后对数据库进行搜索, 检索出符合条件的岗位, 如果无对应岗位, 则进行相应的提示。其核心代码如下所示:
3.2 简历管理
求职者的个人简历由系统自动产生, 用户只需要将个人的基本信息填写完善即可。当个人的基本信息发生 变化时 ,可以重新生成简历, 整个简历的生成过程在系统向导的指引下完成。其核心代码如下所示:
4 结语
对人才招聘系统进行研究分析, 使企业可以利用该系统在网上招聘到合适的人才。由于篇幅所限, 对于系统的具体实现部分, 并没有给出全部代码, 由于各个企业的现状和经营理念不同, 系统的设计并不一定能够满足所有企业的需求,希望各企业根据自身的具体情况, 进一步地研究。
摘要:针对当前企业招聘人员难的问题,设计了人才招聘系统。从系统功能、安全、性能等3个方面对系统的需求进行了分析,对模块设计和数据库设计进行了分析,给出了系统功能的部分具体实现。
3.浅谈Java桌面应用程序开发 篇三
【摘 要】Java对于服务器,个人电脑和移动设备来说是一项伟大的技术。由于需要java的跨平台的特性,因此java在服务器和移动设备方面的应用是非常成功的。Java开发的桌面程序既有友好易用的图形用户界面,也能够实现相应的功能。【关键词】桌面开发
AWT
Swing SWT Java与桌面端现在流行的桌面平台要数Windows、Mac和 Linux。但它们不是十全十美的,Windows主宰着桌面操作系统的市场,其上有巨大的应用和开发群体,但它昂贵且有许多安全漏洞。Linux有着稳固的基础,它是开源的软件,比Windows更可靠。Mac非常容易操作且不是黑客的目标,但与Windows和Linux比起来,Mac的硬件和软件可选的余地非常的有限。Windows、Linux和Mac 在桌面的流行创造了多样性,这种多样性正是Java需要的,这就使得Java在桌面有举足轻重的地位。跨平台的支持Java 运行于所有相关的操作系统,包括Windows、Mac和Linux。也就是说把现有的应用从一个操作系统移植到另一个操作系统而不用做太多的改动,所以Java是首选的桌面开发平台。或许用微软的可视化工具很容易构建.NET应用,但是这将使软件被绑定在了Windows平台上。也许有人想用Linux 代替Windows 从而避免由微软操作系统的漏洞带来的问题,但是用户不能容忍的问题之一是当从Windows移植到Linux时所带来的巨大的费用。如果应用程序用Java构建,就没有了这些问题,Java的图形用户界面看上去会跟使用的操作系统一样,而并不需要做什么改动。丰富的特征最初,Java只有非常有限的一些特征去构建图形用户界面,思想就是用与平台无关的Java应用程序接口打包不同的操作系统的本地图形用户界面,称之为抽象的窗口工具。它仅有普通的部件如文件域、文本区、选择框、单选按钮、列表框和按钮被AWT支持,图形和图像的特性支持非常有限,也就是说,只能够构建简单的applet程序。认识到需要更高级的图形用户界面组件和图形能力,Sun公司开发了Swing,Java 2D,Java 3D,图像的输入/输出,Java高级图像(JAI)和很多其它的组件。这些中的一些窗体组件现在已经是Java 2标准版(J2SE)里的一部分。例如Swing、Java 2D、图像的输入/输出都是Java的核心API,它们随着Java开发工具包(JDK)和Java运行环境一起被提供给用户。Java图形界面工具Java有三个主要的图形界面工具:AWT,Swing和SWT。Swing 是构建java图形界面标准的API(应用程序接口),一些AWT类由Swing继承而来。SWT是一个非常有前途的新的窗体工具,由IBM资助。但是事实上,这三者相互补充,它们满足不同的需求。AWT抽象窗口工具包(Abstract Windowing Toolkit)(AWT)是Java的平台独立的窗口系统,图形和用户界面器件工具包。AWT是Java基础类(JFC)的一部分,为Java程序提供图形用户界面(GUI)的标准API。AWT提供了JavaApplet和Java Application中可用的用户图形界面GUI中的基本组件(components)。由于Java是一种独立于平台的程序设计语言,但GUI却往往是依赖于特定平台的,Java采用了相应的技术使得AWT能提供给应用程序独立于机器平台的接口,这保证了同一程序的GUI在不同机器上运行具有类似的外观(不一定完全一致)。SwingSwing是一个用于开发Java应用程序用户界面的开发工具包。它以抽象窗口工具包(AWT)为基础使跨平台应用程序可以使用任何可插拔的外观风格。Swing开发人员只用很少的代码就可以利用Swing丰富、灵活的功能和模块化组件来创建优雅的用户界面。工具包中所有的包都是以swing作为名称。SWTSWT是IBM为它的Eclipse集成开发环境而开发的图形用户界面工具。SWT可以在Eclipse环境外使用,而且提供对操作系统本地图形用户界面的直接访问。因此,基于SWT的Java应用程序拥有本地的图形用户界面并且可以和本地别的应用程序和部件集成在一起。SWT社区现在正在设计浏览器API,这些API可以产生基于IE或者Mozilla的HTML窗口。SWT现在可以在AIX,HPUX,Linux,QNX,Solaris,和Windows下面运行。误解与Bug对于java/Swing一直有着误解,诸如:Java/Swing太慢了,或者是Java/Swing需要更多的内存。也许老式的奔腾运行JDK1。2确实很慢,但是PIII级别的CPU运行JDK1。4环境是足够快的。一个应用程序中鼠标在1毫秒和在10毫秒的反映的差异,从使用者方面来说是没什么区别的。Java不但在企业级的上千人同时在线的服务器中表现良好,而且在仅有有限资源的移动设备上的表现也是很出色的。总结Java作为一种网络技术,是为了在浏览器中能够运行小应用程序而发布,但是它从开始就有运行独立的桌面应用程序的能力。不幸的是,AWT没有提供足够的桌面端的程序所需的特性。Swing着手于解决这些问题,但是它有不少的bug。今天,Java有构建大型桌面端应用程序的能力并修复了bug。Java独有的优点是“只写一次,到处运行”——在Windows,Linux,Mac和其它操作系统上运行Java代码的能力。【参考文献】[1]Eric,Java编程思想[M],第4版,机械工业出版社,2007年4月[2]Metsker S J,Java设计模式[M],第2版,电子工业出版社,2012年09 月[3]毕建信,基于MVC设计模式的Web应用研究与实现[D],武汉理工大学出版社,2006年5月
4.java程序员招聘 篇四
1.abstract class Name { private String name;public abstract boolean isStupidName(String name){} }大侠们,这有何错误?答案: 错。abstract method必须以分号结尾,且不带花括号。
2.public class Something { void doSomething(){ private String s = “";int l = s.length();} }有错吗? 答案: 错。局部变量前不能放置任何访问修饰符(private,public,和protected)。final可以用来修饰局部变量(final如同abstract和strictfp,都是非访问修饰符,strictfp只能修饰class和method而非variable)。
3.abstract class Something { private abstract String doSomething();}这好像没什么错吧? 答案: 错。abstract的methods不能以private修饰。abstract的methods就是让子类implement(实现)具体细节的,怎么可以用private把abstract method封锁起来呢?(同理,abstract method前不能加final)。
4.public class Something { public int addOne(final int x){ return ++x;} }这个比较明显。
答案: 错。int x被修饰成final,意味着x不能在addOne method中被修改。
5.public class Something {
public static void main(String[] args){ Other o = new Other();new Something().addOne(o);}
public void addOne(final Other o){ o.i++;} } class Other { public int i;}和上面的很相似,都是关于final的问题,这有错吗? 答案: 正确。在addOne method中,参数o被修饰成final。如果在addOne method里我们修改了o的reference,(比如: o = new Other();),那么如同上例这题也是错的。但这里修改的是o的member vairable(成员变量),而o的reference并没有改变。
6.class Something { int i;
public void doSomething(){ System.out.println(”i = “ + i);} } 有什么错呢? 看不出来啊。
答案: 正确。输出的是”i = 0“。int i属於instant variable(实例变量,或叫成员变量)。instant variable有default value。int的default value是0。
7.class Something { final int i;
public void doSomething(){ System.out.println(”i = “ + i);} }和上面一题只有一个地方不同,就是多了一个final。这难道就错了吗? 答案: 错。final int i是个final的instant variable(实例变量,或叫成员变量)。final的instant variable没有default value,必须在constructor(构造器)结束之前被赋予一个明确的值。可以修改为”final int i = 0;“。
8.public class Something {
public static void main(String[] args){ Something s = new Something();
System.out.println(”s.doSomething()returns “ + doSomething());}
public String doSomething(){ return ”Do something...“;} } 看上去很完美。
答案: 错。看上去在main里call doSomething没有什么问题,毕竟两个methods都在同一个class里。但仔细看,main是static的。static method不能直接call non-static methods。可改成”System.out.println(“s.doSomething()
returns
”
+ s.doSomething());“。同理,static method不能访问non-static instant variable。
9.此处,Something类的文件名叫 OtherThing.javaclass Something {
private static void main(String[] something_to_do){ System.out.println(”Do something...“);} } 这个好像很明显。
答案: 正确。从来没有人说过Java的Class名字必须和其文件名相同。但public class的名字必须和文件名相同。
10.interface A{
int x = 0;} class B{ int x =1;}
class C extends B implements A { public void pX(){ System.out.println(x);}
public static void main(String[] args){ new C().pX();} } 答案:错误。在编译时会发生错误(错误描述不同的JVM有不同的信息,意思就是未明确的x调用,两个x都匹配(就象在同时import java.util和java.sql两个包时直接声明Date一样)。对于父类的变量,可以用super.x来明确,而接口的属性默认隐含为 public static final.所以可以通过A.x来明确。
11.interface Playable {
void play();} interface Bounceable { void play();}
interface Rollable extends Playable, Bounceable { Ball ball = new Ball(”PingPang“);}
class Ball implements Rollable { private String name;public String getName(){ return name;}
public Ball(String name){ this.name = name;}
public void play(){
ball = new Ball(”Football“);System.out.println(ball.getName());} }这个错误不容易发现。
答案: 错。”interface Rollable extends Playable, Bounceable“没有问题。interface可继承多个interfaces,所以这里没错。问题出在interface Rollable里的”Ball ball = new Ball(“PingPang”);“。任何在interface里声明的interface variable(接口变量,也可称成员变量),默认为public static final。也就是说”Ball ball = new Ball(“PingPang”);“实际上是”public static final Ball ball = new Ball(“PingPang”);“。在Ball类的Play()方法中,”ball = new Ball(“Football”);“改变了ball的reference,而这里的ball来自Rollable interface,Rollable interface里的ball是public static final的,final的object是不能被改变reference的。因此编译器将在”ball = new Ball(“Football”);“这里显示有错。
JAVA编程题 1.现在输入n个数字,以逗号,分开;然后可选择升或者降序排序;按提交键就在另一页面显示按什么排序,结果为,提供reset import java.util.*;public class bycomma{
public static String[] splitStringByComma(String source){ if(source==null||source.trim().equals(”“))
return null;
StringTokenizer commaToker=new tringTokenizer(source,”,“);String[] result = new String[commaToker.countTokens()];int i=0;
while(commaToker.hasMoreTokens()){ result[i] = commaToker.nextToken();i++;} return result;} public static void main(String args[]){
String[] s = splitStringByComma(”5,8,7,4,3,9,1“);int[] ii = new int[s.length];for(int i = 0;i for(int i=(s.length-1);i>=0;i--){ System.out.println(ii[i]);} } } 2.金额转换,阿拉伯数字的金额转换成中国传统的形式如:(¥1011)->(一千零一拾一元整)输出。package test.format;import java.text.NumberFormat;import java.util.HashMap;public class SimpleMoneyFormat { public static final String EMPTY = ”“;public static final String ZERO = ”零“;public static final String ONE = ”壹“;public static final String TWO = ”贰“;public static final String THREE = ”叁“;public static final String FOUR = ”肆“;public static final String FIVE = ”伍“;public static final String SIX = ”陆“;public static final String SEVEN = ”柒“;public static final String EIGHT = ”捌“;public static final String NINE = ”玖“;public static final String TEN = ”拾“;public static final String HUNDRED = ”佰“;public static final String THOUSAND = ”仟“;public static final String TEN_THOUSAND = ”万“;public static final String HUNDRED_MILLION = ”亿“;public static final String YUAN = ”元“;public static final String JIAO = ”角“;public static final String FEN = ”分“;public static final String DOT = ”.“; private static SimpleMoneyFormat formatter = null;private HashMap chineseNumberMap = new HashMap();private HashMap chineseMoneyPattern = new HashMap();private NumberFormat numberFormat NumberFormat.getInstance();private SimpleMoneyFormat(){ numberFormat.setMaximumFractionDigits(4);numberFormat.setMinimumFractionDigits(2); = numberFormat.setGroupingUsed(false);chineseNumberMap.put(”0“, ZERO);chineseNumberMap.put(”1“,ONE);chineseNumberMap.put(”2“, TWO);chineseNumberMap.put(”3“, THREE);chineseNumberMap.put(”4“, FOUR);chineseNumberMap.put(”5“, FIVE);chineseNumberMap.put(”6“, SIX);chineseNumberMap.put(”7“, SEVEN);chineseNumberMap.put(”8“, EIGHT);chineseNumberMap.put(”9“, NINE);chineseNumberMap.put(DOT, DOT);chineseMoneyPattern.put(”1“, TEN);chineseMoneyPattern.put(”2“, HUNDRED);chineseMoneyPattern.put(”3“, THOUSAND);chineseMoneyPattern.put(”4“, TEN_THOUSAND);chineseMoneyPattern.put(”5“, TEN);chineseMoneyPattern.put(”6“, HUNDRED);chineseMoneyPattern.put(”7“, THOUSAND);chineseMoneyPattern.put(”8“, HUNDRED_MILLION);} public static SimpleMoneyFormat getInstance(){ if(formatter == null) formatter = new SimpleMoneyFormat();return formatter;} public String format(String moneyStr){ checkPrecision(moneyStr);String result; result = convertToChineseNumber(moneyStr);result = addUnitsToChineseMoneyString(result); return result;} public String format(double moneyDouble){ return format(numberFormat.format(moneyDouble));} public String format(int moneyInt){ return format(numberFormat.format(moneyInt));} public String format(long moneyLong){ return format(numberFormat.format(moneyLong));} public String format(Number moneyNum){ return format(numberFormat.format(moneyNum)); private String convertToChineseNumber(String moneyStr){ String result; StringBuffer cMoneyStringBuffer = new StringBuffer();for(int i = 0;i < moneyStr.length();i++){ cMoneyStringBuffer.append(chineseNumberMap.get(moneyStr.substring(i, i + 1))); //拾佰仟万亿等都是汉字里面才有的单位,加上它们 int indexOfDot = cMoneyStringBuffer.indexOf(DOT);int moneyPatternCursor = 1;for(int i = indexOfDot1) cMoneyStringBuffer.delete(cMoneyStringBuffer.length()1, JIAO); cMoneyStringBuffer.insert(cMoneyStringBuffer.length(), FEN);if(cMoneyStringBuffer.indexOf(”零角零分“)!=-1)//没有零头,加整 cMoneyStringBuffer.replace(cMoneyStringBuffer.indexOf(”零角零分“), cMoneyStringBuffer.length(), ”整“); else if(cMoneyStringBuffer.indexOf(”零分“)!=-1)//没有零分,加 整 cMoneyStringBuffer.replace(cMoneyStringBuffer.indexOf(”零分“), cMoneyStringBuffer.length(), ”整“);else { if(cMoneyStringBuffer.indexOf(”零角“)!=-1) cMoneyStringBuffer.delete(cMoneyStringBuffer.indexOf(”零角“),cMoneyStringBuffer.indexOf(”零角“)+2); tmpBuffer.append(”整“); } result = cMoneyStringBuffer.toString();return result;} private void checkPrecision(String moneyStr){ int fractionDigits = moneyStr.length() -moneyStr.indexOf(DOT)-1; if(fractionDigits > 2)throw new RuntimeException(”金额“ + moneyStr + ”的小数位多于两位。“);//精度不能比分低 } public static void main(String args[]){ System.out.println(getInstance().format(new Double(10010001.01)));} } 3、继承时候类的执行顺序问题,一般都是选择题,问你将会打印出什么? 答:父类: package test; public class FatherClass { public FatherClass(){ System.out.println(”FatherClass Create“);} } 子类: package test; import test.FatherClass; public class ChildClass extends FatherClass { public ChildClass(){ System.out.println(”ChildClass Create“);} public static void main(String[] args){ FatherClass fc = new FatherClass();ChildClass cc = new ChildClass();} } 输出结果: C:>java test.ChildClass FatherClass FatherClass Create ChildClass Create 4、内部类的实现方式? 答:示例代码如下: package test; public class OuterClass { private class InterClass { public InterClass(){ System.out.println(”InterClass Create“);} } public OuterClass(){ InterClass ic = new InterClass();System.out.println(”OuterClass Create“);} public static void main(String[] args){ OuterClass oc = new OuterClass();} Create } 输出结果: C:>java test/OuterClass InterClass Create OuterClass Create 再一个例题: public class OuterClass { private double d1 = 1.0;//insert code here } You need to insert an inner class declaration at line 3.Which two inner class declarations are valid?(Choose two.) A.class InnerOne{ public static double methoda(){return d1;} } B.public class InnerOne{ static double methoda(){return d1;} } C.private class InnerOne{ double methoda(){return d1;} } D.static class InnerOne{ protected double methoda(){return d1;} } E.abstract class InnerOne{ public abstract double methoda();} 说明如下: 一.静态内部类可以有静态成员,而非静态内部类则不能有静态成员。故 A、B 错 二.静态内部类的非静态成员可以访问外部类的静态变量,而不可访问外部类的非静态变量;return d1 出错。故 D 错 三.非静态内部类的非静态成员可以访问外部类的非静态变量。故 C 正确 四.答案为C、E 5、Java 的通信编程,编程题(或问答),用JAVA SOCKET编程,读服务器几个字符,再写入本地显示? 答:Server端程序: package test;import java.net.*;import java.io.*;public class Server { private ServerSocket ss;private Socket socket;private BufferedReader in;private PrintWriter out;public Server(){ try { ss=new ServerSocket(10000);while(true){ socket = ss.accept();String RemoteIP = socket.getInetAddress().getHostAddress();String RemotePort = ”:“+socket.getLocalPort();System.out.println(”A in!IP:“+RemoteIP+RemotePort);in = new BufferedReader(new client come InputStreamReader(socket.getInputStream()));String line = in.readLine(); System.out.println(”Cleint send is :“ + line);out = new PrintWriter(socket.getOutputStream(),true);out.println(”Your Message Received!“);out.close();in.close();socket.close();} }catch(IOException e){ out.println(”wrong“);} } public static void main(String[] args){ new Server();} } Client端程序: package test;import java.io.*;import java.net.*;public class Client { Socket socket;BufferedReader in;PrintWriter out;public Client(){ try { System.out.println(”Try to Connect to 127.0.0.1:10000“);socket = new Socket(”127.0.0.1“,10000);System.out.println(”The Server Connected!“);System.out.println(”Please enter some Character:");BufferedReader line = new BufferedReader(new InputStreamReader(System.in)); out = new PrintWriter(socket.getOutputStream(),true);Out 3、接口和内部类、抽象类的特征答:接口:在一个类里,只有申明没有实现。内部类:是在一个类的内部定义的一个类;抽象类:是以abstract 定义的,里面至少有一个抽象方法。 4、文件读写的基本类 答:File Reader 类和FileWriter类分别继承自Reader类和Writer类。FileReader类用于读取文件,File Writer类用于将数据写入文件,这两各类在使用前,都必须要调用其构造方法创建相应的对象,然后调用相应的read()或 write()方法。 6、线程的基本概念、线程的本状态以及状态之间的关系 ?新建(Born): 新建的线程处于新建状态?就绪(Ready): 在创建线程后,它将处于就绪状态,等待 start()方法被调用?运行(Running): 线程在开始执行时进入运行状态?睡眠(Sleeping): 线程的执行可通过使用 sleep()方法来暂时中止。在睡眠后,线程将进入就绪状态?等待(Waiting): 如果调用了 wait()方法,线程将处于等待状态。用于在两个或多个线程并发运行时。?挂起(Suspended): 在临时停止或中断线程的执行时,线程就处于挂起状态。?恢复(Resume): 在挂起的线程被恢复执行时,可以说它已被恢复。?阻塞(Blocked)– 在线程等待一个事件时(例如输入/输出操作),就称其处于阻塞状态。?死亡(Dead)– 在 run()方法已完成执行或其 stop()方法被调用之后,线程就处于死亡状态。 5、串行化的注意事项以及如何实现串行化答:如果有循环引用是不可以串行化的。对象输出流的WriteObject方法和 对象输入流的ReadObect 方法 7、线程的同步、如何实现线程的同步答:当两个或多个线程同时访问同一个变量,并且以个线程需要修改这个变量。就要用到线程同步。在Java 中,同步是通过 synchronized 关键字来定义的。诺是想同步化某程序段,可以使用 synchronized(object){}方法,其中{}内的程序语句被同步化。 9、socket通信(tcp/udp区别及JAVA的实现方式)TCP——传输控制协议,具有极高的可靠性,保证数据包按照顺序准确到达,但其也有着很高的额外负担。UDP——使用者数据元协议,并不能保证数据包会被成功的送达,也不保证数据包到达的顺序,但其传输速度很快。大多数我们会使用TCP,偶尔才会动用UDP,如声音讯号,即使少量遗失,也无 关紧要。 10、JAVA的事件委托机制和垃圾回收机制 java 事件委托机制的概念,一个源产生一个事件并将它送到一个或多个监听器那里。在这种方案中,监听器简单的等待,直到它收到一个事件。一旦事件被接受,监听器将处理这个事件,然后返回。垃圾回收机制 垃圾收集是将分配给对象但不在使用的内存回收或释放的过程。如果一个对象没有指向它的引用或者其赋值为null,则次对象适合进行垃圾回收 11、JDBC调用数据库的基本步骤导入必要的类,装入JDBC驱动程序,识别数据源,分配一个Connection对象,分配一个Statement对象,使用Statement执行一个查询,从返回的ResultSet对象中检索数据,关闭ResultSet,关闭Statement对象,关闭Connection对象 12、解析XML文件的几种方式和区别答:Dom解析 在内存中创建一个DOM树,能随机访问文件内容,也可以修改原文件内容SAX解析 线性解析,不能随机访问,也无法修改原文件Dom解析要先用SAX解析创建DOM树 13、JAVA的四种基本权限的定义public private protected 默认 Java是计算机应用程序编程语言,被广泛用于创建Web应用、服务器处理、用户端的API开发乃至数据库等多个领域。下面厚学网小编列出了8个有助于你开发Java应用程序好的Java工具。 1.SparkJava 这是一款体形轻巧,功能强大的Web应用框架。Spark拥有简单而直接的方法。您可以通过一些繁琐的XML配置来使用Spark框架编写应用程序。Spark能让你花费很少的精力来开发Java的Web应用程序。 2.jClarity jClarity是两款产品的结合:illuminate用于性能监控,而census则可以收集日志和分析数据。jClarity支持云集成,并且其框架紧凑轻巧。 3.Clover Clover是用于代码覆盖的一大利器。该工具有助于用于应用程序测试的代码。我们可以在IDE或持续集成系统中运行Clover。该工具能让测试的运行速度更快。 4.JProfiler JProfiler拥有直观的用户界面,可以帮助你解决性能瓶颈和理解问题。JProfiler能让你轻松约束内存泄漏和修复线程的问题。 5.VisualVM VisualVM是一个集多功能于一身的Java故障排除工具。你可以使用VisualVM整合多命令行JDK工具。此轻便的工具有着惊人的分析能力。你可以在各种技术,如jvmstat、JMX和Serviceability Agent(SA)中使用VisualVM。VisualVM出名的是附加了API,以获得更多的数据,以及自动使用更快捷。 6.Elasticsearch Elasticsearch提供了可以整合现有的应用程序来驱动其与输入数据的交互的工具。这款开源工具提供了实时搜索和分析引擎。Elasticsearch可用于可靠性和可扩展性作为重要因素的分布式环境。该工具提供了超简单的全文搜索体验。 7.Sonarqube Sonarqube是一个用来管理代码质量的开放式平台。基于Web的应用程序可以与Java应用程序进行配置。它提供了规则、警报、阈值、排除和设置功能。SonarQube允许用户将指标结合在一起,以及使用历史的措施混合。 8.Takipi Takipi是一个轻量级的Java代理。Takipi安装方便,用不了几分钟就可以搞定。它对代码注释或配置并没有要求。你可以使用一台具有完全功能的服务器与Takipi工作。此款 Java工具能帮助你减少调试时间。 总结 一. 选择题 1.从“员工”表的“姓名”字段中找出名字包含“玛丽”的人,下面的哪条select语句正确() A.Select*from 员工 where姓名 =“__玛丽__” B.Select*from 员工 where姓名 =“%玛丽__” C.Select*from 员工 where姓名 like“__玛丽%” D.Select*from 员工 where姓名 like“%玛丽%” 二. 多选题 6.下面哪两个设置一个jsp页的content type? A. 7.下面描述正确的是() A.Statement 继承自PreparedStatement B.ResultSet继承自Statement C.CallableStatement继承自PreparedStatement D.PreparedStatement继承自Statement 8.下列属于jsp中注释的有()A.<%----%> B.// C./* */ D. 三.排序 9.典型的JDBC程序按()顺序编写。A.释放资源 B.获得与数据库连接 C.创建不同类型的Statement D.如果有结果集,处理结果集 10.以下哪些是定义在ResultSet中用于Cursor定位的方法: A.next()B.beforeFirst()C.afterLast()D.isBeforeFirst() E.absolute(int)F.relative(int)四.判断题 11. 错误 正确 12.statement 执行query得到resultSet对象,必须执行next方法才可以取出第一条记录 错误 正确 五.解答题 13.如何获得数组的长度? 14.try{}里有一个return语句,那么紧跟在这个try后的finally()里的语句是否执行,何时执行? 15.列出java 基本数据类型 16.在java 中,如何跳出当前的多重嵌套循环? 17.描述使用JDBC连接数据库的过程 18.jsp 中动态INCLUDE与静态INCLUDE的区别? 19.两种跳转方式分别是什么?有什么区别? 20.http 协议默认端口是______tomcat服务器的默认端口是___________ 21.HTTP 提交请求的方式有两种,分别是_______和__________ 22.简单说明page, request,session, application 的作用范围 23.简单说明Vector 和hashtable 的区别 24.简单阐述几种表单的提交方法(非方式)。 25.如何在HTML页面中嵌套其他页面 26.现有客户信息表如下: (1).用一条Sql 语句,查询订单大于1000元的用户名 六.程序题(手写代码) 1.现有1,2,3,4几个数字,这几个数字能组成多少个不重复的三位数?分别是多少? 目前纯粹的繁体字符主要由BIG5编码所规定, BIG5码中共规定了13053个繁体字;而纯粹的简体字符主要由GB2312编码所规定, 仅有6763个简体字。 设计思路是:先参照BIG5码的规范, 生成13053个繁体字 (每个繁体字都有一个唯一的Unicode编码) , 再由诸如Word等权威软件, 完成13053个繁体字到简体字 (每个简体字也都有一个唯一的Unicode编码) 的转换, 从中找出每个字在转换前后所对应的Unicode编码是否有发生变化。 如果前后有发生变化, 则在繁体字的Unicode编码和对应的简体字的Unicode编码之间建立映射关系, 并将该映射关系存入一张Hash表中, 以便于将来进行繁体到简体映射的查找。如果前后没有发生变化, 说明当前繁体字与简体字的字形是一致的, 不需要映射。 2 根据BIG5字符集产生繁体汉字 2.1 BIG5编码中的汉字 BIG5码使用了双字节储存方法, 以两个字节来编码一个字。第一个字节称为“高位字节”, 第二个字节称为“低位字节”。高位字节的编码范围0Xa1~0Xf9, 低位字节的编码范围0x40~0x7E及0Xa1~0Xfe。 在上面的基本编码规则下, 各编码范围对应的字符类型如下:0Xa140~0Xa3BF为标点符号、希腊字母及特殊符号, 另外于0Xa259~0Xa261, 存放了双音节度量衡单位用字:兙兛兞兝兡兣嗧瓩糎;高字节0Xa4~0Xc6, 低字节0x40~0x7E及0Xa1~0Xfe, 其中0Xc6A1~0Xc6FE为日文字符要除外, 共5401个常用繁体汉字, 先按笔划再按部首排序;高字节0x C9~0x F9, 低字节0x40~0x7E及0Xa1~0Xfe, 其中0x F9D6~0Xc6FE字符要除外, 共7652个非常用繁体汉字, 亦是先按笔划再按部首排序。因此, BIG5码共有5401+7652=13053个繁体汉字, 第一个繁体汉字为“一”, 最后一个繁体汉字为“龘” (读dá, 意思:龙腾飞的样子) 。 2.2 代码实例 下面是根据BIG5编码字符集生成所有繁体汉字的部分代码实例: 2.3 编码输出格式 在输出的繁体字符文档中, 规定字符串格式:先是每个字符连续输出, 最后加上一个换行回车, 这样是为了保证该文件被Word转换后, 能保持前后大小一致。因为Word在转换后保存时, 会默认加上换行回车。如果转换之前的文档结尾没有换行回车, 那么将导致转换后的文档大小不一致。如果已经有了, 则不必再增加。 生成的文件如果使用GBK编码格式输出, 文件大小为26108个字节 (13053*2+2, 其中两个字节分别为换行和回车) , 因为GBK是使用两个字节表示一个汉字, 用一个字节表示换行, 一个字节表示回车。使用Word进行转换后, 大小不变。 生成的文件如果使用UTF-8编码格式输出, 文件大小为39161个字节 (13053*3+2, 其中两个字节分别为换行和回车) , 因为UTF-8对于汉字需要使用3个字节来表示, 但是对于换行回车各只需要一个字节。使用Word进行转换后, 大小变为39164个字节。 因此, 在输出繁体汉字到文件时, 最好是使用GBK编码, 而不要使用UTF-8编码, 因为如果使用UTF-8编码进行文件输出, 在利用Word进行繁体到简体的转换后, 文件大小前后会发生变化, 将不利于后期建立Hash表。 另外一个重要的原因是:由于使用的是中文操作系统, 其默认编码是GBK, 所以如果输出文档是用GBK编码, 那么在用Word打开时, 不需要进行格式转换;如果使用UTF-8编码输出, Word文档在读取该文档时, 会对其进行格式转换, 除了会导致文件转换前后大小不一外, 在后续的比较过程中, 也会出现问题。 3 利用Word进行文档转换 将前文中所得的繁体字符文档复制为两份, 用Word打开其中的一份, 进行繁体到简体的转换。整个文档转换完毕需要大约1分钟, 完成后保存。 这里有一点要特别说明:Word在进行繁/简体转换时, 默认情况并不是仅仅对单个字进行转换, 而是会对词进行转换。如:繁体词组“全形”经过转换后就会变为简体词组“全角”!因此在使用Word进行转换前, 应对Word进行必要的设置, 保证Word在进行转换时, 不会对词组进行转换, 而只会对单个字符进行转换。在Word的“工具”、“语言”、“简体繁体转换”中可以设置是否对词汇进行转换。 4 生成映射Hash表 通过Word转换后, 就会得到包含全部繁体字符的文档和与之对应的简体字符的文档。下面的工作就是找出两个文档中, 繁体和简体不同的汉字, 并以此为参照, 建立HashMap, 用于快速繁体到简体的映射。 因为两个文档中共有13053个汉字和两个字节的换行加回车, 所以最终结果是共比较了13055个字符, 其中相同个数:10163;不相同个数:2892;HashMap大小:2892。这表明BIG5编码所定义的繁体字中, 实际上只有2892个繁体字与其对应的简体字不同, 需要进行映射。 下面是生成HashMap的部分代码实例: 5 繁/简体转换 生成Hash表后, 就可以利用该Hash表进行繁/简体映射转换。进行映射转换前, 一定要判断当前字符是否为Unicode汉字, 如果是汉字, 才进行映射转换, 毕竟映射转换需要查找HashMap。 判断语句如下: 通过上述方法, 判断当前字符是否为广义Unicode汉字。接下来就可以进行映射转换了, 部分代码如下: 6 结语 通过Java实现的是从繁体转换到简体汉字, 这也是实际中最常用的功能。而在某些特定情况下则是要将汉字从简体转换到繁体, 但从实际情况来看, 从简体转换为繁体, 相对于繁体转换为简体来说更为复杂。因为往往一个简体字会对应多个繁体字, 即为一对多的映射, 如:简体的“发”字就对应繁体的“發”和“髮”两个字, 这也是为何简体字中有大量多音字的原因。因此, 在进行简/繁体转换时, 如果只是简单地进行字与字之间的转换映射, 必然有一部分转换是错误的。这时候就需要对要转换的文档进行分词, 建立简体词组到繁体词组的映射关系, 这个问题将留待以后继续研究。 摘要:在实际应用中, 为了方便读者阅读, 常常需要进行繁/简体汉字之间的字形转换。这里所说的转换, 准确意义应该称之为映射。即两者都对应各自的Unicode编码, 在不同编码之间构筑一个映射关系。主要研究了在编写的Java程序中实现繁/简体转换映射。 关键词:数据包;TCP协议;UDP协议 中图分类号:TP311 文献标识码:A 文章编号:1674-7712 (2012) 10-0098-01 计算机网络是计算机技术和通信技术紧密结合的产物,对如今社会发展有着深远的影响。网络编程的目的就是指直接或间接地通过网络协议与其他计算机进行通讯。网络编程中有两个主要问题:一个是如何准确地定位网络上一台或多台主机,另一个就是找到主机后如何可靠高效地进行数据传输。在TCP/IP协议中IP层主要负责网络主机的定位,数据传输的路由,由IP地址可以唯一地确定Internet上的一台主机。而TCP层则提供面向应用的可靠的或非可靠的数据传输机制,这是网络编程的主要对象,一般不需要关心IP层是如何处理数据的。 一、TCP和UDP协议 TCP和UDP协议属于传输层协议。其中TCP提供IP环境下的数据可靠传输,它提供的服务包括数据流传送、可靠性、有效流控、全双工操作和多路复用。通过面向连接、端到端和可靠的数据包发送。通俗说,它是事先为所发送的数据开辟出连接好的通道,然后再进行数据发送;而UDP则不为IP提供可靠性、流控或差错恢复功能。一般来说,TCP对应的是可靠性要求高的应用,而UDP对应的则是可靠性要求低、传输经济的应用。TCP支持的应用协议主要有:Telnet、FTP、SMTP等;UDP支持的应用层协议主要有:NFS、SNMP、DNS、TFTP等。 二、网络通信中Java的网络类和接口 Java中有关网络方面的功能都定义在java.net程序包中。Java所提供的网络功能可大致分为三大类: (一)URL和URLConnection:使用Socket类进行网络编程相当麻烦。对已经存在的协议,程序员应当了解它的每一段代表的含义,改而使用URL类可以很大程度上免去这些麻烦。 1.URL类 URL是类URL表示统一资源定位器,即指向网上某处资源的指针。一个URL包括协议名和主机名,有些还包括特定的端口号。 2.URLConnection类 通过URL的方法openStream(),只能从网络上读取数据,如果同时还想输出数据,例如向服务器的CGI程序发送一些数据,则必须先与URL建立连接,然后才能对其进行读写,这时就要用到URLConnection类了。CGI是公共网关接口的简称,它是用户浏览器和服务器端的应用程序进行连接的接口。 URLConnection类可以由两种方式构建:一种是通过一个URL实例openConnection()方法返回一个,另一种是直接通过new URLConnection(URL ul)来创建。URLConnection实例不仅可以实现接收消息,还可以发送消息。 (二)Socket:又称套接字,是网络编程中最原始的通信方式之一。一个套接字通常包含一个IP地址和一个端口地址,后者一般对应着某个应用程序。因此如果要进行Socket编程,首先要确定端口。一般来说,1024以下的端口已经被指定为固定的服务类型,如果用户要开发自己的交流平台,必须使用之后的端口地址。 套接字(Socket)允许程序把网络连接当成一个流,可以向这个流写字节,也可以从这个流读取字节。Java的Socket类提供了丰富的功能。服务器使用的一般是ServerSocket,通过连接使双方都会产生一个实例,对实例进行操作来实现通信。大部分工作都是在抽象类SocketImpl中定义的。 任何一个网络程序都离不开连接的建立、读写操作、关闭,程序还分为客户和服务器两种类型。除了关闭操作可以简单地使用Close()方法外,读写操作都不是一句话说得完的。 (三)Datagram:是一种面向无连接的通信方法。它基于UDP协议,不需要建立和释放连接,每次通信时只要构造一个DatagramPacket实例发送出去,对方同样构造一个DatagramPacket实例接收。以Datagram方式传送数据时,只是把数据的目的地记录在数据包中,然后就直接放在网络上进行传输,系统不保证数据一定能够安全送到,也不能确定什么时候可以送到。 三、Java实现加密 Java的网络功能十分强大,还体现在作用它可以轻松实现各种加密算法。如今加密算法大致可分为两类:对称加密和公钥加密。 对称加密,发送方和接收方使用同样的密钥,前者用它来加密,后者则用它解密。这样做本来是很安全的,例如3DES的密钥为112位,这样的组合数大约是5×1033,几乎不可能被攻破。但是密钥总要在双方交换,因此交换途径的保密性就很关键,使用人工固然安全却麻烦,在网络上传输虽方便但危险。故如今网络上大多使用公钥加密方式。 公钥加密的优点在于,加密和解密的密钥是不同的,前者称为公钥,后者称为私钥。公钥,顾名思义,是可以公开的,一台电脑里可能存放了很多远程通讯方提供的公钥。 公钥解密还可以用在数字签名上,这时的动作是相反的:用私钥加密,和用公钥解密。Java里用于实现这方面功能的是java.security软件包。 综上所述,Java网络编程主要基于TCP协议和UDP协议,TCP协议提供高可靠性服务,适用于一次要传输交换大量报文的情况,信道上传递的包不需要源地址和目的地址,UDP协议提供高效率服务,适用于依次传输交换少量报文的情形,每个数据包含目的的地址和端口号,Java支持网络通信的类在java.net包中。 参考文献: [1]印旻.Java语言与面向对象程序设计[M].北京:清华大学出版社,2007 [2]朱福喜.Java语言程序设计[M].北京:清华大学出版社,2007 [3]李明才.Java语言程序设计案例教程[M].北京:中国水利水电出版社,2010,8 [4]张渝.Java语言程序设计[M].北京:北京大学出版社,2008 成都java开发工程师培训解读:java程序员如何确定职业方向? 为什么越来越多的90后偏爱互联网行业呢?他们的择业观与80后有哪些区别呢? 在公司内部,90后更偏爱自由开放的企业文化。从调查结果来看,有73%的受访者赞同“开放自由、相对宽松”是最理想的企业文化,仅有13%的受访者可以接受“严格守序、集体高于个人的传统企业文化”。在追求自由的风格影响下,大部分90后都明确表示反感办公室八卦和职场潜规则。 每一代人都有自己的择业观——70后追求稳定“铁饭碗”;80后奉行实用主义,看重职业发展;而90后爱高薪更爱自由。波士顿咨询公司的最新分析报告显示,2014年互联网行业在中国直接创造了170万个就业机会。随着行业的进一步发展,预计2020年有望直接为约350万人带来就业机会。短短几年间,蓬勃发展的互联网公司已经成为深受90后青睐的就业选择。很多90后之所以热衷在互联网企业就业,与行业广阔的发展空间、人性化的管理风格以及诱人的薪酬福利有着密切关系。 四川是旅游的天堂,无法拒绝她火辣辣的美食,无法拒绝她惊艳的自然风光,更无法拒绝她的古蜀文化。随着it培训的飞速发展以及人们生活水平的提高,it培训已成为很多80后、90后、00后学技术的首选。但是,初学者能不能学会成了很多人担心的首要问题。为此,小编前往学校教学一线,与众多实操大师一起探讨并分析了四川国信安职业培训学校的教学模式以及能否学会等诸多问题。 地球不爆炸,我们不放假;宇宙不重启,我们不休息;风里雨里栏目里,小编我都在这里等着你~给你解答有关it培训的各种问题~下面就让小编带领各位去了解一下it培训吧! 随着IT行业日新月异的发展,不少人都把目光投向了薪资优越的IT软件行业。成都国信安Java培训学员的资料调查显示,在众多的软件培训中,大家选择Java培训的远比其它软件培训更多,他们都想培训Java开发然后上岗。但是由于很多人对Java了解不多,不知道自己是否适合Java培训。小编为我们总结了三点,大家可以对比一下。 Java培训三大必备条件: 一要适应Java编程 Java培训软件开发必然离不开编程,这是一种与计算机进行交流的语言,是一种非人类语言,所以一定要有很强的逻辑性和运算性,要求程序员在编写的时候进行慎重的考虑。能够脚踏实地细心地研究一行行代码,具有较强的逻 辑思维能力,同时有一个端正的学习态度和心态,这些都是从事Java工作的基础能力和必要要求。 二要会总结学习方式 我们常说行行出状元,这是因为他们能够掌握最适合自己的方法,学习Java也不例外,只有掌握好的学习方法才能取得事半功倍的效果。成都国信安是专业的Java培训机构,这里有资深的老师进行辅导,学习氛围佳,有完善的教学体系,还有就业老师推荐工作,对每位学员负责,定位准确,尽力让每个人都能成功入职自己满意的企业。 三要对Java感兴趣 俗话说,兴趣是学习很好的老师,在任何学习和工作中,兴趣都是很关键的。目前Java很热门,受关注度高,很多人纯粹为了好就业,就盲目进行学习。最后可能自己学有所成,但却没有兴趣继续从事这项工作,后悔的还是自己,浪费了大量的时间和金钱。所以对于Java开发这种技术性行业,兴趣真的很重要。 如果你满足以上三点,自己也想学习Java,但是依旧不确定自己能不能学会,就来成都国信安开启你的IT之路吧。 Java程序员面试题 1.下列程序段执行后,t5的结果是_____.int t1=5,t2=6,t3=7,t4,t5; t4 = t1 t5 = t4 2.String s = new String(“xyz”);创建了_____个String Object.3.类型转换 int x=4; System.out.println(“value is ” +((x>4)?99.9:9));输出是______; 4.Boolean类型 boolean a = false; if(a = true){ System.out.println(true); } else { System.out.println(false);结果是______; 5.int i = 5; Integer iInteger = new Integer(i); Integer jInteger = new Integer(i); System.out.println(i == iInteger); System.out.println(iInteger == jInteger);输出结果是______; 6.TreeSet map = new TreeSet(); map.add(“one”); map.add(“two”); map.add(“three”); map.add(“four”); map.add(“one”); Iterator it = map.iterator(); while(it.hasNext()){ System.out.print(it.next()+ “ ”); } 输出结果是 ________________________________________; class Polish { public static void main(String[] args){ int x = 4; StringBuffer sb = new StringBuffer(“..fedcba”); sb.delete(3,6); sb.insert(3, “az”); if(sb.length()> 6)x = sb.indexOf(“b”); sb.delete((x-3),(x-2)); System.out.println(sb); 北京千渡网讯科技有限公司博宝艺术网http:// } } 结果是: ____________ 8.class Emu { static String s = “-”; public static void main(String[] args){ try { throw new Exception(); } catch(Exception e){ try { try { throw new Exception(); } catch(Exception ex){ s += “ic ”;} throw new Exception(); } catch(Exception x){ s += “mc ”;} finally { s += “mf ”;} } finally { s += “of ”;} System.out.println(s);结果是:______________________ 9..抽象类和接口的区别 10.写一个方法,实现字符串的反转,如:输入abc,输出cba 11.short s1 =1;s1 = s1 + 1;有什么错? short s1 = 1;s1 += 1;有什么错? 12.下列哪些集合能够改变其容量大小,同时能够根据索引访问其元素,并且访问方法是非线形安全的? A.java.util.HashSet B.java.util.LinkedHashSet C.java.util.List D.java.util.ArrayList E.java.util.Vector F.java.util.PriorityQueue 13.下列关于泛型的说法,错误的是() A、泛型是一种参数化类型 B、可以取代继承机制。 C、避免了运行时进行类型转换可能的潜在性错误 D、增强了程序的灵活性和安全性 14.下面关于System.out的说法哪些是正确? A.System.out是1个PrintStream。 B.System.out是1个OutputStream。 C.System.out是1个FilterOutputStream。 D.System.out不是1个PrintStream。 E.System.out在异常时,将抛出IOException 关键词:JBuilder;Java小应用程序;Applet 中图分类号:TP311.52 文献标识码:A文章编号:1007-9599 (2013) 05-0000-02 JBuilder实质上是一种可视化的开发Java的工具。JBuilder能够在Java2的平台上进行商业化的数据库、程序开发。由于JBuilder支持J2EE,因此能够互换企业Java应用程序。而Java小应用程序能够推动整个Web的发展,其所用的浏览器支持Java applet。只要浏览器在HTML文档内发现了 1生成Applet框架 JBuilder2005中有三种工具可以帮助生成、测试Applet程序,即Applet Wizard、AppletTestBed以及Applet Viewer。其中,Applet Wizard能及时的建立HTML文件,对应Applet的基本结构。而AppletTestBed、Applet Viewer能测试整个Applet的执行程度。 其实,如果用JBuilder来生成Applet框架,相对比较容易。我们使用Applet Wizard开始生成Applet框架。启动Applet Wizard先打开Object Gallery对话框,再选取好Applet图标。然后在name栏里将HelloApplet输入,调整好directory栏内的路径。将default path、JDK版本、Backup path等都选为默认值,并修改class Javadoc fields内的author、Title、Description、Company以及version字段的值。修改完点完成。 这时便能够设置输入Applet内的具体参数了。首先,用Applet Wizard在HTML文件中<applet>标签内生成<param>,并在其他类的文件中介入程序代码。将name调整为param0。如果选择了Generate HTML Page,Applet Wizard会生成一个带着<applet>标签的HTML文件。为了改变<applet>的属性,我们可以使用Width、Name、Height字段设置。在完成离开至工程窗格后,会发现已经产生了两个文件HelloApplet.html、HelloApplet.java。Applet框架基本已经生成。 2设计Applet用户界面 对于JBuilder2005而言,最好的设计用户界面工具为HelloApplet。 首先在JBuilder编辑器内打开HelloApplet.java文件,然后选择Design页签。将组件this节点的属性从default layout转变成为BorderLayout,并在Applet中介入两个Panel容器。在AWT页签之内选择java.awt.Panel,并点击this节点。就会出现新的panel1。将panel1内的Constraints设为North属性。再做一个panel2,将属性改为Center。 再将panel1、panel2改动名称,panel1改为UpperPanel,panel2改为LowerPanel。Panel1的Background改为Light Gray属性。Panel2的background改为White属性。只要背景颜色有差异就可以。把LowerPanel中的layout改为CardLayout属性,并选择java.awt.Panel组件,点设定好的LowerPanel节点,动作加入Panel。此时又会出现panel1和panel2。把Panel1、Panel2都更换属性设置和背景属性。做好这些以后便可以保存工程。整个Applet用户界面已经生成,只需再加入一些UI组件便可。 3测试Java小应用程序 等到开发完毕之后,在JBuilder中点击.html文档,则可以看到应用小程序。为了测试其执行结果能力,Sun Microsystems的Applet Viewer,或者是JBuilder 2005的AppletTestBed。 只要我们选择Run | Run Project,就会自动启动AppletTestBed,执行main class。首先,选择Project,将Project Properties打开。切换到Run窗格,按住New按钮组建新运行配置,或者是按Edit重新编辑。然后开始编辑main class内容。 如果要浏览Applet,可选择一个有着<applet>标签的HTML文件。需要浏览时,只需在HTML文件中右击一下,选择Run using时期的配置,则能够进行启动。 4开发过程中应注意的问题 4.1JDK版本不同 由于Java技术的发展,JDK版本都升级到了好几层。开发人员总是喜欢新JDK版本来进行开发,但用户却很少对浏览器版本进行更新。因此,就会出现一部分人能够使用,而另一部分人因为没有及时对浏览器更新,不能够使用。对此,只需让公司员工定期更新Web浏览器则可。或者在网页中做出相应的提示。倘若浏览器的JDK版本不合格,可使用plug-in和Java Web Start来处理。 4.2安全性问题 Applet执行容易受到某些网络病毒和软件篡改程序代码,致使客户端信息受损。一般Applet都集中在Sandbox之内,即安全环境中。网络是开放式的,被窃取和拦截的频率比较高。在JBuilder开发时,需要注意安全性的问题。 5结束语: 用JBuilder开发Java小应用程序,能够减少以往开发Java的复杂性。在开发Java小应用时,先设置好具体的Applet框架,然后设计好美观的用户界面。JBuilder比其他的开发软件更便捷,并且它具有全新的安全检测能力,能够解决Applet中遗留的问题。 参考文献: [1]谢欢,何培英.基于JBuilder平台的J-Link应用程序开发技术[J].郑州轻工业学院学报(自然科学版),2008,3. [2]沈悦.J2ME开发及JBuilder工具的应用[J].重庆三峡学院学报,2003,1. [3]雷小锋.用JBuilder开发Java小应用程序[J].电脑编程技巧与维护,2001,9. [4]陈爱平,闵华松,刘启林.JBuilder中使用Java Applet访问数据库[J].电脑开发与应用,2005,8. [5]张军.多层架构及其在JBuilder6.0中的实现[J].重庆邮电学院学报(自然科学版),2004,2. [作者简介]张金波(1971.3-),性别:女,民族:汉,籍贯:辽宁省辽阳市, 学历:大学本科,职称:副教授,研究方向:软件开发,从事工作:教学 【java程序员招聘】推荐阅读: JAVA程序员笔试例题08-13 JAVA程序员笔试题目08-14 java程序员求职简历09-03 JAVA程序员面试经验11-05 java程序员职业规划06-22 《JAVA程序员面试32问》12-08 转行Java程序员应该具备哪些知识08-28 Java程序员的平均薪资水平是多少?09-11 成都Java培训机构哪家好?如何修炼成优秀Java程序员06-16 JAVA三级程序员培训题库(标红为答案)06-245.java程序员招聘 篇五
6.java程序员(笔试) 篇六
7.java程序员招聘 篇七
8.浅谈Java程序设计的网络编程 篇八
9.java程序员招聘 篇九
10.Java程序员面试题 篇十
11.java程序员招聘 篇十一