搜档网
当前位置:搜档网 › Java程序员面试宝典 - Java代码查错

Java程序员面试宝典 - Java代码查错

Java程序员面试宝典 - Java代码查错
Java程序员面试宝典 - Java代码查错

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) {

https://www.sodocs.net/doc/c86077154.html, = 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

ii[i] =Integer.parseInt(s[i]);

}

Arrays.sort(ii); //asc

for(int i=0;i

System.out.println(ii[i]);

} //desc

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(mo neyStr.substring(i, i + 1)));

//拾佰仟万亿等都是汉字里面才有的单位,加上它们

int indexOfDot = cMoneyStringBuffer.indexOf(DOT);

int moneyPatternCursor = 1;

for (int i = indexOfDot - 1; i > 0; i--) {

cMoneyStringBuffer.insert(i, chineseMoneyPattern.get(EMPTY + moneyPatternCursor));

moneyPatternCursor = moneyPatternCursor == 8 ? 1 : moneyPatternCursor + 1;

}

String fractionPart = cMoneyStringBuffer.substring(cMoneyStringBuffer.indexOf("."));

cMoneyStringBuffer.delete(cMoneyStringBuffer.indexOf("."), cMoneyStringBuffer.length());

while (cMoneyStringBuffer.indexOf("零拾") != -1) {

cMoneyStringBuffer.replace(cMoneyStringBuffer.indexOf("

零拾"), cMoneyStringBuffer.indexOf("零拾") + 2, ZERO);

}

while (cMoneyStringBuffer.indexOf("零佰") != -1) {

cMoneyStringBuffer.replace(cMoneyStringBuffer.indexOf("

零佰"), cMoneyStringBuffer.indexOf("零佰") + 2, ZERO);

}

while (cMoneyStringBuffer.indexOf("零仟") != -1) {

cMoneyStringBuffer.replace(cMoneyStringBuffer.indexOf("

零仟"), cMoneyStringBuffer.indexOf("零仟") + 2, ZERO);

}

while (cMoneyStringBuffer.indexOf("零万") != -1) {

cMoneyStringBuffer.replace(cMoneyStringBuffer.indexOf("零万"), cMoneyStringBuffer.indexOf("零万") + 2, TEN_THOUSAND);

}

while (cMoneyStringBuffer.indexOf("零亿") != -1) {

cMoneyStringBuffer.replace(cMoneyStringBuffer.indexOf("

零亿"), cMoneyStringBuffer.indexOf("零亿") + 2, HUNDRED_MILLION);

}

while (cMoneyStringBuffer.indexOf("零零") != -1) {

cMoneyStringBuffer.replace(cMoneyStringBuffer.indexOf("

零零"), cMoneyStringBuffer.indexOf("零零") + 2, ZERO);

}

if (https://www.sodocs.net/doc/c86077154.html,stIndexOf(ZERO) == cMoneyStringBuffer.length() - 1)

cMoneyStringBuffer.delete(cMoneyStringBuffer.length() - 1, cMoneyStringBuffer.length());

cMoneyStringBuffer.append(fractionPart);

result = cMoneyStringBuffer.toString(); return result;

}

private String addUnitsToChineseMoneyString(String moneyStr) {

String result;

StringBuffer cMoneyStringBuffer = new StringBuffer(moneyStr);

int indexOfDot = cMoneyStringBuffer.indexOf(DOT);

cMoneyStringBuffer.replace(indexOfDot, indexOfDot + 1, YUAN);

cMoneyStringBuffer.insert(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 Create 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();

}

}

输出结果: 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 https://www.sodocs.net/doc/c86077154.html,.*;

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 client come in!IP:"+RemoteIP+RemotePort);

in = new BufferedReader(new InputStreamReader(socket.getInputStream()));

java源代码经典入门案例—光环java编程培训机构

java源代码经典入门案例 class Demo { public static void main(String[] args) { System.out.println("hello E盘"); } } class Demo { public static void main(String[] args) { System.out.println("hello E盘"); } } /* 需求:练习一个hello world程序。 思路: 1,定义一个类,因为java程序都定义类中,java程序都是以类的形式存在的,类的形式其实就是一个字节码文件最终体现。 2,定义一个主函数。为了让该类可以独立运行。 3,因为演示hello world,在控制台上看到该字样,所以需要使用输出语句完成。 步骤: 1,用class关键字来完成类的定义,并起一个阅读性强的类名。 2,主函数:public static void main(String[] args)这时固定格式的。jvm认识。 3,使用输出语句:System.out.println("hello world"); 代码仅仅是思想的一种体现形式。 */ class Demo

{ //定义一个主函数,为了保证程序的独立运行。 public static void main(String[] args) { System.out.println("hello world");//这是输出语句,用于将括号中的数据打印到控制台上,ln可以在数据的结尾处换行。 } } class OperateDemo { public static void main(String[] args) { //算术运算符。+ - * / %(取余,模运算) +(连接符) // ++(自增:就在原有数据基础上+1,在赋给原有数据) -- //int x = 6370; //x = x / 1000 * 1000; //System.out.println(x); // System.out.println(5%2); // System.out.println(3+"2"); //System.out.println("5+5="+(5+5));//"5+5=5"+5 "5+5=55" //int a = 4,b = 5; //System.out.println("a="+a+",b="+b);//a=4,b=5; int a = 3,b; //a++;//a = a+1; // b = a++; b = (a++)+(++a)+(a++)+a; // 3 5 5 6 System.out.println("a="+a+",b="+b); int i = 3; i = i++;

java增删改查代码(精)

import java.awt.EventQueue; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.border.EmptyBorder; import javax.swing.JTextField; import javax.swing.JLabel; import javax.swing.JButton; import java.awt.Font; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import javax.swing.JScrollPane; import java.awt.event.ActionListener; import java.awt.event.ActionEvent; import javax.swing.JTable; import javax.swing.table.DefaultTableModel;

public class test01 extends JFrame { private JPanel contentPane; private JTextField t1; private JTextField t2; private JTextField t3; private Connection con;//声明一个连接private Statement sql;//声明一个statement 对象private ResultSet rs;//声明一个结果集 private PreparedStatement pst; private JTable table; private String s[][] = new String[20][3]; /** * Launch the application. */ public static void main(String[] args { EventQueue.invokeLater(new Runnable( { public void run( { try { test01 frame = new test01(;

经典Java程序源代码

1.加法器(该java源文件的名称是)import .*; import .*; public class Adder implements ActionListener { JFrame AdderFrame; JTextField TOprand1; JTextField TOprand2; JLabel LAdd,LSum; JButton BAdd,BClear; JPanel JP1,JP2; public Adder() { AdderFrame=new JFrame("AdderFrame"); TOprand1=new JTextField("");

TOprand2=new JTextField(""); LAdd=new JLabel("+"); LSum=new JLabel("= "); BAdd=new JButton("Add"); BClear=new JButton("Clear"); JP1=new JPanel(); JP2=new JPanel(); (this); (new ActionListener() { public void actionPerformed(ActionEvent event) { (""); (""); ("="); }

}); (JP1); (TOprand1); (LAdd); (TOprand2); (LSum); (JP2); (BAdd); (BClear); ().setLayout(new BorderLayout()); ().add(JP1,; ().add(JP2,; (new WindowAdapter() {

JAVA数据库基本操作增删改查(精)

JAVA 数据库基本操作, 增删改查 package mypack; JAVA 数据库基本操作, 增删改查 import java.sql.Connection; import java.sql.ResultSet; import java.util.ArrayList; public class DbOper {//查询多行记录public ArrayList select({Connection conn =null; ResultSet rs =null; try {import java.sql.PreparedStatement; import java.sql.SQLException; PreparedStatement pstmt =null; ArrayList al =new ArrayList(; conn =DbConn.getConn(;pstmt =conn.prepareStatement(“select *from titles ”; rs =pstmt.executeQuery(;while (rs.next({Titles t =new Titles(;t.setTitleid(rs.getString(1;t.setTitle(rs.getString(2;al.add(t;}}catch (SQLExceptione { e.printStackTrace(;}finally {try {//TODO 自动生成catch 块if (rs!=null rs.close(;if (pstmt!=nullpstmt.close(;if (conn!=nullconn.close(;}catch (SQLExceptione { e.printStackTrace(;}}//TODO 自动生成catch 块 return al; }//查询单个对象public Titles selectOne(Stringtitleid{Connection conn =null; ResultSet rs =null; try {PreparedStatement pstmt =null; Titles t =new Titles(;

Java源代码___聊天室

Java 聊 天 室 制作人:_____杨永生_____ 制作时间:2012.9.26 目录 1本文简介 (2) 2聊天室截图与说明 (2) 2.1用Java编译: (2) 2.2服务器登录界面 (2) 2.3服务器窗口 (2) 2.4客服端登录界面 (3) 2.5客服端窗口 (3) 3服务器端 (6) 3.1MyServer()方法 (6) 3.2Login()方法 (10) 3.3Time()方法 (13) 4客户端 (14) 4.1MyClient()方法 (14) 4.2Login()方法 (18) 4.3Time()方法 (20)

1 本文简介 这是一个简单的Java聊天室,仅提供给一些刚学Java的学生做实验,本文也是仅供参考. 本文代码都有注释,希望读者能读懂代码,本实验内部还有一些错误,比如只能一条一条的发信息,不能连发,希望能解决本问题的朋友能给我发信息,我的QQ号就是百度号! 2 聊天室截图与说明 2.1 用Java编译: 本代码有七个类,放在六个java文件中,类名在下方希望读者自己观看, 2.2 服务器登录界面 要先运行服务器端的程序 用户名:y 密码:1 用户名密码可以自己设定点击确定可以登录,2秒后到服务端界面 2.3 服务器窗口

聊天室的IP为本机的网络虚拟IP,在任何电脑上都能用,端口应设置在1024以后, 2.4 客服端登录界面 和服务器端的登录一样 2.5 客服端窗口

当登录上后客服端就显示已经连接了,此时服务器端的窗口如下

由于本程序设计的不是很完整,具体的聊天要先从客服端开始: 在客服端输入一条聊天内容后按确定,在服务器端就可以收到信息,之后客户端不能输入了,要等待服务器端来信息后才能继续输入信息. 想要结束聊天,直接可以关闭窗口,也可以输入’bye’后断开聊天

JAVA程序代码(20)

1百分制分数到等级分数 package pm; public class SwitchTest { //编写程序,实现从百分制分数到等级分数的转换 // //>=90 A // 80~89 B // 70~79 C // 60~69 D // <60 E public static void main(String[] args) { int s=871; switch(s/10){ case 10 :System.out.println("A");break; case 9 :System.out.println("A");break; case 8 :System.out.println("B");break; case 7 :System.out.println("c");break; case 6 :System.out.println("D");break; default :System.out.println("E");break; } } } 2成法口诀阵形 package pm; public class SwitchTest{ public static void main(String[] args){ for(int i=1;i<=19;i++){ for(int j=1;j<=i;j++){ System.out.print(j+"*"+i+"="+(i*j)+"\t"); } System.out.println(); }

} } 3华氏和摄氏的转换法 package pm; import java.util.Scanner; public class SwitchTest { public static void main(String[] args) { Scanner sc=new Scanner(System.in); while (true) { System.out.println("请输入要转换的温度类型:C 或F"); String s = sc.next().trim(); if ("c".equalsIgnoreCase(s)) { //做摄氏向华摄的转换 System.out.println("请输入要转换摄氏的温度:.."); double db = sc.nextDouble(); double db2 = (db * 9 / 5) + 32; System.out.println("对应的华氏温度:" + db2 + "F"); } else if ("f".equalsIgnoreCase(s)) { //做华摄向摄氏的转换 System.out.println("请输入要转换华氏的温度:.."); double db = sc.nextDouble(); double db2 = (db - 132) * 5 / 9; System.out.println("对应的摄氏温度:" + Math.round(db2) + "C"); }else if("exit".equalsIgnoreCase(s)){ break; } } } }

学生信息的增删改查(java)

学生信息的增删改查 注意:此处用到的就是access数据库。 运行后效果如图: 代码如下: package example; import java、awt、*; import java、awt、event、ActionEvent; import java、awt、event、ActionListener; import javax、swing、*; import java、sql、*; import java、util、Vector; class myrandom extends JFrame implements ActionListener{ //这个程序的数据就是没有写入文件的 JFrame f1,f2; JButton b1,b2,b3,b4,modify,direction; JLabel a1; JTextField t1,t2,t3,t4; JTable table; myrandom(){ table=new JTable(); f1=new JFrame("学生信息系统"); f1、setVisible(true);//设置窗体可见 a1=new JLabel("输入学号:"); t1=new JTextField(100); t2=new JTextField(100); b1=new JButton("查姓名:"); b2=new JButton("插入信息"); b3=new JButton("查瞧数据"); b4=new JButton("删除"); t3=new JTextField(100); modify=new JButton("修改"); direction=new JButton("操作说明");

Java完整代码

Chapter01——初识Java 1.单词 公共的、公有的:public 静态的:static 主要的:main 打印:print 2.编写类名为HelloWorld的的程序框架 public class HelloWorld{} 3.编写main()方法的框架 public static void main(String[] args){} 4.编写代码输出HelloWorld后并换行 System.out.println(“HelloWorld”); Chapter02——变量、数据类型和运算符 1.单词 字符:character 布尔:boolean 扫描器:scanner 成绩:score 名字:name 2.写出本章节中学习过的五种数据类型 int、double、char、String、boolean 3.创建扫描器对象,并接收用户输入的年龄 Scanner input=new Scanner(System.in); System.out.print(“请输入年龄:”); int age=input.nextInt(); 4.目前有整型变量custNo,请分解出它的个位、十位、百位和千位

int gewei=custNo%10; int shiwei=custNo/10%10; int baiwei=custNo/100%10; int qianwei=custNo/1000; Chapter03——选择结构(一) 1.单词 如果:if 继续:continue 随机:random 数学:math 打断:break 2.如果张浩的Java成绩大于98分,那么老师奖励他一个MP4;否则老师罚他编码, 请补全以下代码: int score=91; if(score>98){ System.out.println(“奖励一个MP4”); }else{ System.out.println(“惩罚进行编码”); } 3.某人想买车,买什么车决定于此人在银行有多少存款。 如果此人的存款超过500万,则买凯迪拉克 否则,如果此人的存款超过100万,则买帕萨特 否则,如果此人的存款超过50万,则买伊兰特 否则。如果此人的存款超过10万,则买奥拓 否则此人买捷安特,请补全以下代码: int money=52; //我的存款,单位:万元 if(money>=500){ System.out.println(“买凯迪拉克”); }else if(money>=100){

java增删改查代码

java增删改查代码 import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; public class DBTools { // 定义一个方法,用来得到一个"新的"连接对象public static Connection getConnection() { Connection conn = null; String driverName = "oracle.jdbc.driver.OracleDriver"; String url = "jdbc:oracle:thin:@localhost:1521:ora9i"; String userName = "scott"; String passWord = "tiger"; try { Class.forName(driverName); conn = DriverManager.getConnection(url,userName,passWord );

} catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } return conn; } public static void closeConn(Connection conn) { try { if(conn != null) { conn.close(); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } public static void closeState(Statement state) {

【IT专家】mysql数据库的连接以及增删改查Java代码实现(PreparedStatement版)

本文由我司收集整编,推荐下载,如有疑问,请与我司联系mysql数据库的连接以及增删改查Java代码实现(PreparedStatement 版) 2015/05/27 0 数据库: ?create table t1(id int primary key not null auto_increment,name varchar(32),password varchar(32));insert into t1(name,password) values( admin , 123 insert into t1(name,password) values( zhangsan , 123 insert into t1(name,password) values( lisi , 123 Java代码: ?mySqlConnection.java代码: ?package com.dbdao.mysql;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import org.junit.Test;public class mySqlConnection {//创建数据库驱动名称private static String Driver_ >//数据库链接地址private String url= jdbc:mysql://localhost:3306/test //数据库用户名private String user= root //数据库密码private String password= 11 //数据库链接private Connection con=null;//准备声明sql语句private PreparedStatement pstmt=null;//结果集private ResultSet rs=null;//影响行数private int i;/* * 创建驱动* */static{try {Class.forName(Driver_class);} catch (ClassNotFoundException e) {// TODO Auto-generated catch blocke.printStackTrace();}}/* * 加载驱动* */@Testpublic void getConnect() {// TODO Auto-generated method stubtry {con=DriverManager.getConnection(url, user, password);} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}//判断数据库是否加载成功if(con!=null){System.out.println( 数据库加载成功!}else{System.out.println( 数据库加载失败!}}/* * 执行sql语句* */public void doSql(String sql,Object[] object) {// TODO Auto-generated method stub//判断sql语句是否存在if(sql!=null){//加载驱动getConnect();//判断object数组是否存在if(object==null){//如果不存在,创建一个,

Java_QQ_源程序代码

2010-06-23 20:24:11 TiBack import https://www.sodocs.net/doc/c86077154.html,.*; import java.io.*; import java.sql.*; import java.util.*; public class QQServer { public static void main(String args[]) { try { //用户名同步(14) HashMap hm = new HashMap() ; // 服务器在8000端口监听(1) ServerSocket ss = new ServerSocket(8000); while (true) { "服务器正在8000端口监听....."); Socket s = ss.accept(); MyService t = new MyService(); t.setSocket(s); t.setHashMap(hm) ; t.start(); } } catch (Exception e) { } } } // 支持多用户登陆(13) class MyService extends Thread { private Socket s; private HashMap hm ; public void setHashMap(HashMap hm) { this.hm = hm ; } public void setSocket(Socket s) { this.s = s; } public void run() { try { // 接收客户端发送来的用户名和密码(2) InputStream is = s.getInputStream();

JavaWeb应用实例servlet实现oracle基本增删改查(精)

Java Web 应用实例 servlet实现oracle 基本增删改查 分类:JAVA WEB应用实例2012-08-31 16:51 3515人阅读评论(0 收藏举报 https://www.sodocs.net/doc/c86077154.html,/a542214712/article/details/7924444 很久没有写博客了,可能是太懒散,不愿意把时间花在这上面,可是我心里还是知道写博客的重要性的,所以从今天开始,我将与大家分享一下我学JAVA WEB写的一些小实例,我个人是不太喜欢书本上的晦涩的概念的,所以我花了更多的时间在一些应用实例上,我觉得这样的学习方式很适合我,由简到繁,由浅入深 废话不多话,开始我们的第一个实例: servlet实现oracle 基本增删改查 开发环境:JDK7 +Myeclipse10+tomcat7.0+oracle 11g 首先附上数据库创建脚本: [sql]view plaincopy 1. create table student( 2. id VARCHAR2(50 PRIMARY KEY NOT NULL, 3. name varchar2(50 NOT NULL, 4. calssGrent varchar2(50 NOT NULL , 5. result varchar(12 NOT NULL 6. ; 7. insert into student(id,name,calssGrent,result values(perseq.nextval,'张三 ','33','98' 下图为代码结构图和功能演示界面做的比较糟糕只为实现功能:

MMC_01.java 页面 //主界面提供添加,修改删除的方法 [java]view plaincopy 1. package org.lsy.servlet; 2. 3. import java.io.IOException; 4. import java.io.PrintWriter; 5. import java.sql.Connection; 6. import java.sql.DriverManager; 7. import java.sql.ResultSet; 8. import java.sql.Statement;

学生信息的增删改查(java)

学生信息的增删改查 注意:此处用到的是access数据库。 运行后效果如图: 代码如下: package example; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.*; import java.sql.*; import java.util.Vector; class myrandom extends JFrame implements ActionListener{ //这个程序的数据是没有写入文件的 JFrame f1,f2; JButton b1,b2,b3,b4,modify,direction; JLabel a1; JTextField t1,t2,t3,t4; JTable table; myrandom(){ table=new JTable(); f1=new JFrame("学生信息系统"); f1.setVisible(true);//设置窗体可见 a1=new JLabel("输入学号:"); t1=new JTextField(100); t2=new JTextField(100); b1=new JButton("查姓名:"); b2=new JButton("插入信息"); b3=new JButton("查看数据");

b4=new JButton("删除"); t3=new JTextField(100); modify=new JButton("修改"); direction=new JButton("操作说明"); t4=new JTextField(100); f1.setLayout(new GridLayout(6,2));//设置窗体的分布为四行二列 f1.add(a1);f1.add(t1);//加入窗体 f1.add(b1);f1.add(t2); f1.add(b2);f1.add(b3); f1.add(b4);f1.add(t3); f1.add(modify);f1.add(t4); f1.add(direction); f1.setSize(200,200);//设置窗体大小 b1.addActionListener(this); b2.addActionListener(this);//设置按钮事件 b3.addActionListener(this); b4.addActionListener(this); modify.addActionListener(this); direction.addActionListener(this); } public void actionPerformed(ActionEvent e) { f1.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);//关闭窗体后释放资源,若不写这条语句, //则虽然关闭了窗体,但进程还在运行。 try{//这个try是在整个action中的,用于捕获建立连接异常 Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); String dburl="jdbc:odbc:mydb"; //mydb是我建立的access 数据源 Connection conn=DriverManager.getConnection(dburl);//这四条语句是用来在整个action事件中建立连接的 Statement stml=conn.createStatement(); //也就不用在每一个button事件(b1,b2,b3,b4)中重复写这四条语句 //以上四条语句也可以改写为下面这四条语句: // String dburl="jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=C:\\db1.mdb"; // Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); // Connection conn = DriverManager.getConnection(dburl); // Statement stml = conn.createStatement(); if(e.getSource()==b3){//查看数据(查看数据库中student表的所有信息

java 增删改查

学号 12741214 Java程序设计 实验报告 数据库连接实现查询 学生姓名苗莉萍 专业、班级12计算机12班 指导教师 成绩 计算机与信息工程学院 2013 年 7 月 4 日

一.实验名称: 数据库连接实现查询 二.实验目的与环境: 环境:Eclipse8.0。 目的:图形界面设计---熟悉java.awt包中的组件,掌握图形界面设计方法,理解委托事件处理模型。 编写一个简单的java连接数据库程序,掌握Java语言的程序设计的 能力,程序有合理的界面设计,能够在界面中实现对记录进行的录入, 增添新的记录,实现上一页,下一页以及最后一页查询等,实现删除 和修改等功能。并且能够顺利关闭界面,退出程序。 (1)掌握Java语言的程序设计方法; (2)理论联系实际,进一步提高学生的软件开发技术; (3)培养学生分析、解决问题的能力; 三.实验要求: (1)设计图形界面添加菜单:窗口上添加各种组件及菜单,并处理组件及菜单的事件监听程序。 (2)熟悉JAVA开发环境,掌握JAVA程序的编译和运行; (3)掌握JAVA基本编程技术和方法; (4)掌握GUI图形界面编程技术; (5)了解异常处理机制。 四.设计步骤: 1:界面设计 创建一个登录名和登录密码,实现用户的登录。

2:功能设计 对每个菜单项进行注册监听。点击四个按钮时时,显示不同记录数据。 3.对数据库进行查询,方便用户查找记录并且及时进行修改。 4.熟练掌握对话框及框架的布局,当添加一新记录时,跳出对话框,填写数据,并显示添加成功。

5.在窗口上方,有四个button按钮,分别是首页,上一页,下一页,最后一页, 程序源代码: package com.group.view; import java.awt.BorderLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import java.sql.SQLException; import java.util.ArrayList; import java.util.List; import java.util.Vector; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTable; import com.group.db.OperateDB; import com.group.function.Mytable; /*在actionListener 中不能传递当前对象*/ public class MainFrame extends JFrame {

JAVA swing界面实现数据库增删改查

数据库程序设计 大作业 班级:2012级软件外包服务一班学号:201215140117 姓名:。。。 时间:2013-6-19

1.功能描述 1.1 功能简介 用swing做出图形化界面形式,实现数据库的增删改查把员工表跟部门表连接起来,实现数据的增加,删除,修改,查找。 1.2 实现步骤 (1)安装好虚拟机,并在其下确认oracle已安装成功(可以在dos下输入相关命令来检查是否安装成功)。 (2)在网络中心修改pc机上的VMware Network Adapter的IP、子网页码(默认)、网关。 (3)修改虚拟机的IP、网掩码(默认)、网关,确保PC机上的网关和虚拟机的IP一致。(在控制面板——>网络和共享中心——>本地连接3——>属性中,修改IP、网掩码)(4)在PC机的dos命令控制台ping虚拟机的IP,确保正常,能ping通(即将虚拟机内外ping通)。 (5)配置好虚拟机下的oracle的数据库和监听。 (6)在eclipse中编写相关代码,并用jtable实现图形化界面,用以实现与数据库的连接和操作数据库等功能。 (7)在eclipse中导入数据库的驱动。 (8)运行eclipse,查看运行结果。

2. 核心代码 2.1 1.数据库连接 package https://www.sodocs.net/doc/c86077154.html,.dbc; import java.sql.Connection; import java.sql.DriverManager;

import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; public class DatabaseConnection { public static void main(String[] args) { Connection conn = null; Statement stmt = null; ResultSet rs = null; try { Class.forName("oracle.jdbc.driver.OracleDriver"); String url = "jdbc:oracle:thin:@192.168.0.128:1521/WFJ"; conn = DriverManager.getConnection(url, "hr", "hr"); stmt = conn.createStatement(); String sql = "select * from departments"; rs = stmt.executeQuery(sql); while (rs.next()) { System.out.print(rs.getInt("department_id")); System.out.print("\t"); System.out.print(rs.getString("department_name")); System.out.print("\t"); System.out.print(rs.getInt("manager_id")); System.out.print("\t"); System.out.print(rs.getInt("location_id")); System.out.println(); } } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } finally { try { if (rs != null) { rs.close(); } if (stmt != null) { stmt.close(); } if (conn != null) { conn.close(); } } catch (SQLException e) {

中国象棋源代码Java程序

import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.util.*; import java.io.*; public class Chess{ public static void main(String args[]){ new ChessMainFrame("中国象棋:观棋不语真君子,棋死无悔大丈夫"); } } class ChessMainFrame extends JFrame implements ActionListener,MouseListener,Runnable{ //玩家 JLabel play[] = new JLabel[32]; //棋盘 JLabel image; //窗格 Container con; //工具栏 JToolBar jmain;

//重新开始 JButton anew; //悔棋 JButton repent; //退出 JButton exit; //当前信息 JLabel text; //保存当前操作 Vector Var; //规则类对象(使于调用方法) ChessRule rule; /** ** 单击棋子 ** chessManClick = true 闪烁棋子并给线程响应 ** chessManClick = false 吃棋子停止闪烁并给线程响应*/ boolean chessManClick;

/** ** 控制玩家走棋 ** chessPlayClick=1 黑棋走棋 ** chessPlayClick=2 红棋走棋默认红棋** chessPlayClick=3 双方都不能走棋 */ int chessPlayClick=2; //控制棋子闪烁的线程 Thread tmain; //把第一次的单击棋子给线程响应 static int Man,i; ChessMainFrame(){ new ChessMainFrame("中国象棋"); } /** ** 构造函数 ** 初始化图形用户界面 */ ChessMainFrame(String Title){

相关主题