Java经典例题

Java经典例题
Java经典例题

l JBS

1.列举出10个JAVA语言的优势

a:免费,开源,跨平台(平台独立性),简单易用,功能完善,面向对象,健壮性,多线程,结构中立,企业应用的成熟平台, 无线应用

2.列举出JAVA中10个面向对象编程的术语

a:包,类,接口,对象,属性,方法,构造器,继承,封装,多态,抽象,范型

3.列举出JAVA中6个比较常用的包

https://www.360docs.net/doc/e616968327.html,ng;java.util;java.io;java.sql;java.awt;https://www.360docs.net/doc/e616968327.html,;java.applet;javax.swing

4.JAVA中的标识符有什么作用和特点

作用:标识符用作给变量、类和方法命名

特点:可以以字母、下划线“_”和”$”符开头

首字符外,可以跟上字母、下划线“_”和”$”符或数字

Java是大小写敏感的,标识符也不例外

5.JAVA中的关键字有什么特点,列举出至少20个关键字

Java中一些赋以特定的含义、并用做专门用途的单词称为关键字(keyword)

所有Java关键字都是小写的,TURE、FALSE、NULL等都不是Java关键字;

goto和const 虽然从未被使用,但也作为Java关键字保留;

?中一共有51个关键字Java

abstract assert boolean break byte continue

case catch char class const double

default do extends else final float

for goto long if implements import

native new null instanceof int interface

package private protected public return short

static strictfp super switch synchronized this

while void throw throws transient try

volatile

6.JAVA中数据类型如何分类?

可分为简单数据类型和引用数据类型:

简单数据类型:数值型(byte,short,int,long,float double),字符型(char),布尔型(boolean);

引用数据类型:类,接口,数组.

7.JAVA中运算符的分类及举例

?分割符:,,;,[],()

?算术运算符: +,―,*,/,%,++,――

?关系运算符: >,<,>=,<=,==,!=

?布尔逻辑运算符: !,& , | , ^ , &&,| |

?位运算符: &,|,^,~ ,>>,< <,>>>

?赋值运算符: = 扩展赋值运算符:+=,―=,*=,/=

?字符串连接运算符: +

?造型操作符:()

8.super,this关键字的作用及用法

?在Java类中使用super来引用父类的成分

–可用于访问父类中定义的属性super

–可用于调用父类中定义的成员方法super

–可用于在子类构造器中调用父类的构造器super

–的追溯不仅于直接父类super

?中为解决变量的命名冲突和不确定性问题,引入关键字“this”代表其所在方法的当前对象。Java –构造器中指该构造器所创建的新对象

–方法中指调用该方法的对象

?关键字的用法this

–在类本身的方法或构造器中引用该类的实例变量和方法

–将当前对象作为参数传递给其它方法或构造器

–用来调用其他的重载的构造器

9.什么是JAVA中的表达式?有什么作用?

?表达式是运算符和操作数的结合,它是任何一门编程语言的关键组成部分

?表达式允许程序员进行数学计算、值的比较、逻辑操作以及在Java中进行对象的操作。

?一些表达式的例子:

–X

–X+10

–Y=x+10

–Arr[10]

–student.geName()

10.做表列出JAVA中所有修饰符和他们的适用范围(能不能修饰构造器,属性,自由块等)

class 属性方法构建器自由块内部类

public Y Y Y Y Y

protected Y Y Y Y

(Default) Y Y Y Y Y Y

private Y Y Y Y

final Y Y Y Y

abstract Y Y Y

static Y Y Y

11.写一个方法,用一个for循环打印九九乘法表

/**

*一个for循环打印九九乘法表

*/

publicvoid nineNineMultiT able()

{

for (int i = 1,j = 1; j <= 9; i++) {

System.out.print(i+"*"+j+"="+i*j+" ");

if(i==j)

{

i=0;

j++;

System.out.println();

}

}

}

12.给定一个java.util.Date对象,如何转化为”2007-3-22 20:23:22”格式的字符串

/**

*将某个日期以固定格式转化成字符串

*@paramdate

*@returnstr

*/

public String dateToStr(java.util.Date date)

{

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

String str = sdf.format(date);

return str;

}

13.写一个方法,能够判断任意一个整数是否素数

/**

*判断任意一个整数是否素数

*@paramn

*@returnboolean

*/

publicboolean isPrimes(int n)

{

for (int i = 2; i <= Math.sqrt(n); i++) {

if(n%i==0)

{

returnfalse;

}

}

returntrue;

}

14.写一个方法,输入任意一个整数,返回它的阶乘

/**

*获得任意一个整数的阶乘

*@paramn

*@returnn!

*/

publicint factorial(int n)

{

//递归

if(n==1)

{

return 1;

}

return n*factorial(n-1);

//非递归

// int multi = 1;

// for (int i = 2; i <= n; i++) {

// multi*=i;

// }

// return multi;

}

15.写一个方法,用二分查找法判断任意整数在任意整数数组里面是否存在,若存在就返回它在数组中的索引位置,不存在返回-1

/**

*二分查找特定整数在整型数组中的位置(递归)

*@paramdataset

*@paramdata

*@parambeginIndex

*@paramendIndex

*@returnindex

*/

publicint binarySearch(int[] dataset,int data,int beginIndex,int endIndex)

{

int midIndex = (beginIndex+endIndex)/2;

if(data dataset[endIndex] ||beginIndex>endIndex)return -1;

if(data

{

return binarySearch(dataset,data,beginIndex,midIndex-1);

}elseif(data>dataset[midIndex])

{

return binarySearch(dataset,data,midIndex+1,endIndex);

}else

{

return midIndex;

}

}

/**

*二分查找特定整数在整型数组中的位置(非递归)

*@paramdataset

*@paramdata

*@returnindex

*/

publicint binarySearch(int[] dataset ,int data)

{

int beginIndex = 0;

int endIndex = dataset.length - 1;

int midIndex = -1;

if(data dataset[endIndex] ||beginIndex>endIndex)return -1;

while(beginIndex <= endIndex) {

midIndex = (beginIndex+endIndex)/2;

if(data

endIndex = midIndex-1;

} elseif(data>dataset[midIndex]) {

beginIndex = midIndex+1;

}else

{

return midIndex;

}

}

return -1;

}

16.做一个饲养员给动物喂食物的例子体现JAVA中的面向对象思想,接口(抽象类)的用处

package com.softeem.demo;

/**

*@authorleno

*动物的接口

*/

interface Animal

{

publicvoid eat(Food food);

}

/**

*@authorleno

*一种动物类:猫

*/

class Cat implements Animal

{

publicvoid eat(Food food)

{

System.out.println("小猫吃"+food.getName());

}

}

/**

*@authorleno

*一种动物类:狗

*/

class Dog implements Animal

{

publicvoid eat(Food food)

{

System.out.println("小狗啃"+food.getName());

}

}

/**

*@authorleno

*食物抽象类

*/

abstractclass Food

{

protected String name;

public String getName() {

returnname;

}

publicvoid setName(String name) {

https://www.360docs.net/doc/e616968327.html, = name;

}

}

/**

*@authorleno

*一种食物类:鱼

*/

class Fish extends Food

{

public Fish(String name) {

https://www.360docs.net/doc/e616968327.html, = name;

}

}

/**

*@authorleno

*一种食物类:骨头

*/

class Bone extends Food

{

public Bone(String name) {

https://www.360docs.net/doc/e616968327.html, = name;

}

}

/**

*@authorleno

*饲养员类

*

*/

class Feeder

{

/**

*饲养员给某种动物喂某种食物

*@paramanimal

*@paramfood

*/

publicvoid feed(Animal animal,Food food)

{

animal.eat(food);

}

}

/**

*@authorleno

*测试饲养员给动物喂食物

*/

publicclass TestFeeder {

publicstaticvoid main(String[] args) {

Feeder feeder=new Feeder();

Animal animal=new Dog();

Food food=new Bone("肉骨头");

feeder.feed(animal,food); //给狗喂肉骨头

animal=new Cat();

food=new Fish("鱼");

feeder.feed(animal,food); //给猫喂鱼

}

}

17.描述JAVA中异常处理的机制

?程序的执行过程中如出现异常,会自动生成一个异常类对象,该异常对象将被提交给Java运行时系统,这个过程称为抛出(throw)异常。Java

?当Java运行时系统接收到异常对象时,会寻找能处理这一异常的代码并把当前异常对象交给其处理,这一过程称为捕获(catch)异常。

?如果Java运行时系统找不到可以捕获异常的方法,则运行时系统将终止,相应的Java程序也将退出。

?程序员通常只能处理违例(Exception),而对错误(Error)无能为力。

18.做一个单子模式的类,只加载一次属性文件

package com.softeem.demo;

import java.io.FileInputStream;

import java.io.FileNotFoundException;

import java.io.IOException;

import java.io.InputStream;

import java.util.Properties;

/**

*@authorleno

*单子模式,保证在整个应用期间只加载一次配置属性文件

*/

publicclass Singleton {

privatestatic Singleton instance;

privatestaticfinal String CONFIG_FILE_PATH = "E:\\config.properties";

private Properties config;

private Singleton()

{

config = new Properties();

InputStream is;

try {

is = new FileInputStream(CONFIG_FILE_PATH);

config.load(is);

is.close();

} catch (FileNotFoundException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

publicstatic Singleton getInstance()

{

if(instance==null)

{

instance = new Singleton();

}

returninstance;

}

public Properties getConfig() {

returnconfig;

}

publicvoid setConfig(Properties config) {

this.config = config;

}

}

l J2SE

19.拷贝一个目录(文件)到指定路径

/**

*拷贝一个目录或者文件到指定路径下

*@paramsource

*@paramtarget

*/

publicvoid copy(File source,File target)

{

File tarpath = new File(target,source.getName());

if(source.isDirectory())

{

tarpath.mkdir();

File[] dir = source.listFiles();

for (int i = 0; i < dir.length; i++) {

copy(dir[i],tarpath);

}

}else

{

try {

InputStream is = new FileInputStream(source);

OutputStream os = new FileOutputStream(tarpath);

byte[] buf = newbyte[1024];

int len = 0;

while((len = is.read(buf))!=-1)

{

os.write(buf,0,len);

}

is.close();

os.close();

} catch (FileNotFoundException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

}

20.用JAVA中的多线程示例银行取款问题packagecom.softeem.demo;

/**

*@authorleno

*账户类

*默认有余额,可以取款

*/

class Account {

privatefloatbalance = 1000;

publicfloat getBalance() {

returnbalance;

}

publicvoid setBalance(float balance) {

this.balance = balance;

}

/**

*取款的方法需要同步

*@parammoney

*/

publicsynchronizedvoid withdrawals(float money) {

if(balance>=money)

{

System.out.println("被取走"+money+"元!");

try {

Thread.sleep(1000);

} catch (InterruptedException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

balance-=money;

}

else

{

System.out.println("对不起,余额不足!");

}

}

}

/**

*@authorleno

*银行卡

*/

class TestAccount1 extends Thread {

private Account account;

public TestAccount1(Account account) {

this.account = account;

}

@Override

publicvoid run() {

account.withdrawals(800);

System.out.println("余额为:"+account.getBalance()+"元!");

}

}

/**

*@authorleno

*存折

*/

class TestAccount2 extends Thread {

private Account account;

public TestAccount2(Account account) {

this.account = account;

}

@Override

publicvoid run() {

account.withdrawals(700);

System.out.println("余额为:"+account.getBalance()+"元!");

}

}

publicclass Test

{

publicstaticvoid main(String[] args) {

Account account = new Account();

TestAccount1 testAccount1 = new TestAccount1(account);

testAccount1.start();

TestAccount2 testAccount2 = new TestAccount2(account);

testAccount2.start();

}

}

21.用JAVA中的多线程示例火车站售票问题

package com.softeem.demo;

/**

*@authorleno

*售票类

*/

class SaleTicket implements Runnable {

inttickets = 100;

publicvoid run() {

while (tickets > 0) {

sale();

//或者下面这样实现

// synchronized (this) {

// if (tickets > 0) {

// System.out.println(Thread.currentThread().getName() + "卖第" // + (100 - tickets + 1) + "张票");

// tickets--;

// }

// }

}

}

publicsynchronizedvoid sale() {

if (tickets > 0) {

System.out.println(Thread.currentThread().getName() + "卖第"

+ (100 - tickets + 1) + "张票");

tickets--;

}

}

}

publicclass TestSaleTicket {

publicstaticvoid main(String[] args) {

SaleTicket st = new SaleTicket();

new Thread(st, "一号窗口").start();

new Thread(st, "二号窗口").start();

new Thread(st, "三号窗口").start();

new Thread(st, "四号窗口").start();

}

}

22.用JAVA中的多线程示例生产者和消费者问题

package com.softeem.demo;

class Producer implements Runnable

{

private SyncStack stack;

public Producer(SyncStack stack) {

this.stack = stack;

}

publicvoid run() {

for (int i = 0; i < stack.getProducts().length; i++) { String product = "产品"+i;

stack.push(product);

System.out.println("生产了: "+product);

try

{

Thread.sleep(200);

}

catch(InterruptedException e)

{

e.printStackTrace();

}

}

}

}

class Consumer implements Runnable

{

private SyncStack stack;

public Consumer(SyncStack stack) {

this.stack = stack;

}

publicvoid run() {

for(int i=0;i

String product =stack.pop();

System.out.println("消费了: "+product);

try

{

Thread.sleep(1000);

}

catch(InterruptedException e)

{

e.printStackTrace();

}

}

}

}

class SyncStack

{

private String[] products = new String[10];

privateintindex;

publicsynchronizedvoid push(String product)

{

if(index==product.length())

{

try {

wait();

} catch (InterruptedException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

notify();

products[index]=product;

index++;

}

publicsynchronized String pop()

{

if(index==0)

{

try {

wait();

} catch (InterruptedException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

notify();

index--;

String product = products[index];

return product;

}

public String[] getProducts() {

returnproducts;

}

}

publicclass TestProducerConsumer {

publicstaticvoid main(String[] args) {

SyncStack stack=new SyncStack();

Producer p=new Producer(stack);

Consumer c=new Consumer(stack);

new Thread(p).start();

new Thread(c).start();

}

}

23.编程实现序列化的Student(sno,sname)对象在网络上的传输package com.softeem.demo;

import java.io.IOException;

import java.io.ObjectInputStream;

import java.io.ObjectOutputStream;

import java.io.Serializable;

import https://www.360docs.net/doc/e616968327.html,.ServerSocket;

import https://www.360docs.net/doc/e616968327.html,.Socket;

class Student implements Serializable {

private int sno;

private String sname;

public Student(int sno, String sname) {

this.sno = sno;

this.sname = sname;

}

public int getSno() {

return sno;

}

public void setSno(int sno) {

this.sno = sno;

}

public String getSname() {

return sname;

}

public void setSname(String sname) {

this.sname = sname;

}

@Override

public String toString() {

return "学号:" + sno + ";姓名:" + sname;

}

}

class MyClient extends Thread {

@Override

public void run() {

try {

Socket s = new Socket("localhost", 9999);

ObjectInputStream ois = new ObjectInputStream(s.getInputStream());

Student stu = (Student) ois.readObject();

System.out.println("客户端程序收到服务器端程序传输过来的学生对象>> " + stu);

ois.close();

s.close();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (ClassNotFoundException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

}

class MyServer extends Thread {

@Override

public void run() {

try {

ServerSocket ss = new ServerSocket(9999);

Socket s = ss.accept();

ObjectOutputStream ops = new ObjectOutputStream(s.getOutputStream());

Student stu = new Student(1, "赵本山");

ops.writeObject(stu);

ops.close();

s.close();

ss.close();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

}

public class TestTransfer {

public static void main(String[] args) {

new MyServer().start();

new MyClient().start();

}

}

l JDBC

24.用dom4j组件解析如下XML格式的文件:

aaa

123

1

bbb

444

4

规则:

operation 1表insert,2表update,3表delete.

handle 1表作为where条件,0表作为操作字段。

要求:按照规则生成三条SQL语句!(即做一个方法解析xml文件生成一个含有三条SQL语句的字符串) /**

*解析XML文件生成一个含有可执行SQL语句的字符串

*@paramxmlFileName

*@returnSQL

*/

public String parseXmltoSQL(String xmlFileName) {

StringBuffer sbsql = new StringBuffer();

SAXReader reader = new SAXReader();

try {

Document document = reader.read(new File(xmlFileName));

Element element = document.getRootElement();

Iterator it = element.elementIterator("table");

while (it.hasNext()) {

element = (Element) it.next();

//获得对表的操作

String oper = element.attributeValue("operation");

//获得表名

String tableName = element.attributeValue("name");

if ("1".equals(oper)) {

sbsql.append("insert into ").append(tableName);

Iterator it2 = element.elementIterator("column");

String columnName1 = null;

String columnValue1 = null;

String columnName2 = null;

String columnValue2 = null;

if (it2.hasNext()) {

element = (Element) it2.next();

columnName1 = element.attributeValue("name");

columnValue1 = element.getText();

}

if (it2.hasNext()) {

element = (Element) it2.next();

columnName2 = element.attributeValue("name");

columnValue2 = element.getText();

}

sbsql.append("("+columnName1+","+columnName2+")"+" values('"+columnValue1+"','"+columnValue2+"')\n");

} elseif ("2".equals(oper)) {

sbsql.append("update ").append(tableName);

Iterator it2 = element.elementIterator("column");

String columnName1 = null;

String columnValue1 = null;

String columnName2 = null;

String columnValue2 = null;

String columnName3 = null;

String columnValue3 = null;

if (it2.hasNext()) {

element = (Element) it2.next();

columnName1 = element.attributeValue("name");

columnValue1 = element.getText();

}

if (it2.hasNext()) {

element = (Element) it2.next();

columnName2 = element.attributeValue("name");

columnValue2 = element.getText();

}

if (it2.hasNext()) {

element = (Element) it2.next();

columnName3 = element.attributeValue("name");

columnValue3 = element.getText();

}

sbsql.append(" set "+columnName2+"='"+columnValue2+"',"+columnName3+"='"+columnValue3+"' where "+columnName1+"="+columnValue1+"\n");

}elseif ("3".equals(oper)) {

sbsql.append("delete from ").append(tableName);

Iterator it2 = element.elementIterator("column");

String columnName1 = null;

String columnValue1 = null;

if (it2.hasNext()) {

element = (Element) it2.next();

columnName1 = element.attributeValue("name");

columnValue1 = element.getText();

}

sbsql.append(" where "+columnName1+"="+columnValue1);

}

}

} catch (DocumentException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

return sbsql.toString();

}

l JSP/SERVLET

25.写出JSP的内置对象并说明他们的作用

request:request表示HttpServletRequest对象。它包含了有关浏览器请求的信息,并且提供了几个用于获取cookie, header数据的有用的方法。response:response表示HttpServletResponse对象,并提供了几个用于设置送回浏览器的响应的方法(如cookies,头信息等)out:out对象是javax.jsp.JspWriter的一个实例,并提供了几个方法使你能用于向浏览器回送输出结果。pageContext:pageContext表示一个javax.servlet.jsp.PageContext对象。它是用于方便存取各种范围的名字空间、servlet相关的对象的API,并且包装了通用的servlet相关功能的方法。session:session表示一个请求的javax.servlet.http.HttpSession对象。Session可以存贮用户的状态信息application:applicaton 表示一个javax.servle.ServletContext对象。这有助于查找有关servlet引擎和servlet环境的信息config:config表示一个javax.servlet.ServletConfig对象。该对象用于存取servlet实例的初始化参数。page:page表示从该页面产生的一个servlet实例。exception: exception对象是一个例外对象,当一个页面在运行过程中发生了例外,就产生这个对象。如果一个JSP页面要应用此对象,就必须把isErrorPage设为true,否则无法编译。他实际上是https://www.360docs.net/doc/e616968327.html,ng.Throwable的对象

java第三章课后习题解答

第3章面向对象程序设计基础 【1】什么是Java程序使用的类?什么是类库? [解答]:Java程序的基本单位是类。对象是对事物的抽象,而类是对对象的抽象和归纳,找出事物的共性,把具有共同性质的事物归结为一类,得出一个抽象的概念——类。类是具有相同属性和方法的一组对象的集合,类是在对象之上的抽象,对象则是类的具体化,一旦建立类之后,就可用它来建立许多你需要的对象。 Java的类库是系统提供的已实现的标准类的集合,是Java编程的API(Application Program Interface),它可以帮助开发者方便、快捷地开发Java程序。# 【2】如何定义方法?在面向对象程序设计中方法有什么作用? [解答]:方法的定义由两部分组成:方法声明和方法体。方法声明的基本格式如下: 返回类型方法名(形式参数) { … //方法体内容 } 方法声明包括方法名、返回类型和形式参数,方法的小括号是方法的标志;方法体为实现方法行为的Java语句。 在面向对象程序设计中,方法所起的作用是完成对类和对象属性操作。 【3】简述构造方法的功能和特点。下面的程序片段是某学生为student类编写的构造方法,请指出其中的错误。 void Student(int no,String name) { studentNo=no; studentName=name; return no; } [解答]:构造方法是一个特殊的方法,主要用于初始化新创建的对象。构造方法的方法名要求与类名相同,用户不能直接调用,只能通过new运算符调用,而且构造方法是不返回任何数据类型,甚至也不返回void数据类型,即不能在构造方法前加void。 以上的代码段出错于:①构造方法Student()前不能加void ②不能用return语句 【4】定义一个表示学生的student类,包括的域有学号、姓名、性别、年龄,包括的方法有获得学号、姓名、性别、年龄及修改年龄。编写Java程序创建student类的对象及测试其方法的功能。 [解答]:程序代码段如下: class student{ private String id; private String name; private String sex; private int age;

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经典编程题二及详细答案

2.1上机练习 ?基本题 1)编程观察如下输出语句: System.out.println("hello test escape char"); 在“escape”处换上各种转义字符测试输出效果。如何实现如下输出: Hello "test" Hello ‘\test’ 2)设有如下代码段,考虑赋值转换问题: int a=234; byte b=a; System.out.println("a=" a ",b=" b); 将a,b的类型以及数据进行各种替换,观察什么时候能赋值,什么时候需要使用强制转换,什么时候不能强制转换,什么时候强制转换会丢失数据。 3) 编写一个程序求半径R为10的圆的面积,结果保留2为有效小数。公式为:S=πR2 注:π可用Math类的常量PI表示(即Math.PI)。保留小数请查阅DecimalFormat类?提高题 1)设有一个边长为30的等边三角形,三角形内有一个内切圆,计算除内切圆外三角形内其它部分的面积。 【提示】先算三角形面积,再计算圆的面积,其差即为结果。h是等边三角形的高,内切圆的半径r=h/3,面积s=πh?/9。 2)调试分析以下程序的运行结果: public class test { public static void main(String a[]) { int m=10,n=517; System.out.println(n % m); System.out.println(n / m); System.out.println(m >> 2); System.out.println(m & n); System.out.println(Integer.toBinaryString(m)); System.out.println(Integer.toBinaryString(m >> 2)); } } 注意:Integer.toBinaryString(int)用于将一个整数转化为二进制形式的数字串。在进行位运算

《JAVA WEB开发实战经典》总结

《Java Web开发实战经典》期末总结 第一部分Web开发前奏 第一章Java Web开发简介 通过本章的的学习,使我了解了web的发展过程。 第二章HTML、Javascript简介 通过本章的的学习,使我了解了JavaScript的基本语法,主要事件,主要对象的作用。可以使用JavaScript完成表单的交互程序开发。 第三章XML简介 通过本章的的学习,使我了解了XML语言的基础语法,还可以清楚区分HTML和XML。并掌握了java中DOM和SAX解析XML文件的操作。学习了DOM解析XML文件的操作和DOM4J 解析XML文件的操作。使用XML可以进行数据存储结构的规范化。 第四章Tomcat服务器的安装及配置 通过本章的的学习,使我了解了Tomcat服务器的主要作用和Tomcat服务器的安装及配置。知道了Tomcat安装目录下主要目录的作用。理解JSP页面的执行流程,和编写第一个交互式程序。 第二部分Web基础开发 第五章JSP基础语法 通过本章的的学习,使我了解了Jsp中注释语句的使用和Jsp中Scriptlet的使用及使用的区别,掌握了page指令的作用和两种包含语句及两种包含语句的区别,懂得了跳转指令的操作。基本可以使用Jsp基础语法结合JDBC完成登录程序的开发。 第六章JSP内置对象 通过本章的的学习,使我了解了Jsp中的9个内置对象及对应的操作接口,掌握了jsp 中的4种属性范围及属性操作,掌握了request,response,session,application,pagecontext这些常用内置对象的使用。 第七章JavaBean 通过本章的的学习,使我了解了JavaBean的基本定义格式和web目录的标准结构,掌握了jsp中对于javabean支持的3种标签,即,.可以使用javabean进行参数的自动赋值操作。 第八章文件上传 通过本章的的学习,使我了解了文件上传操作的作用和smartupload上传组件的使用,理解了fileupload上传组件的使用。

JAVA经典算法案例

JA V A经典算法40例 【程序1】题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第四个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 1.程序分析:兔子的规律为数列1,1,2,3,5,8,13,21.... public class exp2{ public static void main(String args[]){ int i=0; for(i=1;i<=20;i++) System.out.println(f(i)); } public static int f(int x) { if(x==1 || x==2) return 1; else return f(x-1)+f(x-2); } } 或 public class exp2{ public static void main(String args[]){ int i=0; math mymath = new math(); for(i=1;i<=20;i++) System.out.println(mymath.f(i)); } } class math { public int f(int x) { if(x==1 || x==2) return 1; else return f(x-1)+f(x-2); } } 【程序2】题目:判断101-200之间有多少个素数,并输出所有素数。 1.程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除, 则表明此数不是素数,反之是素数。 public class exp2{ public static void main(String args[]){ int i=0; math mymath = new math(); for(i=2;i<=200;i++) if(mymath.iszhishu(i)==true) System.out.println(i); } } class math { public boolean iszhishu(int x) { for(int i=2;i<=x/2;i++) if (x % i==0 ) return false; return true; } } 【程序3】题目:打印出所有的"水仙花数",所谓"水仙花数 "是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个"水

java经典面试题汇总

Java基础方面: 1、作用域public,private,protected,以及不写时的区别 答:区别如下: 作用域当前类同一package 子孙类其他package public √√√√ protected √√√ × friendly √√ × × private √ × × × 不写时默认为friendly 2、Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类,是否可以implements(实现)interface(接口) 答:匿名的内部类是没有名字的内部类。不能extends(继承) 其它类,但一个内部类可以作为一个接口,由另一个内部类实现 3、Static Nested Class 和 Inner Class的不同 答:Nested Class (一般是C++的说法),Inner Class (一般是JA V A的说法)。Java内部类与C++嵌套类最大的不同就在于是否有指向外部的引用上。注:静态内部类(Inner Class)意味着1创建一个static内部类的对象,不需要一个外部类对象,2不能从一个static内部类的一个对象访问一个外部类对象 4、&和&&的区别 答:&是位运算符,表示按位与运算,&&是逻辑运算符,表示逻辑与(and) 5、Collection 和 Collections的区别 答:Collection是集合类的上级接口,继承与他的接口主要有Set 和List. Collections是针对集合类的一个帮助类,他提供一系列静态方法实现对各种集合的搜索、排序、线程安全化等操作 6、什么时候用assert 答:assertion(断言)在软件开发中是一种常用的调试方式,很多开发语言中都支持这种机制。在实现中,assertion就是在程序中的一条语句,它对一个boolean表达式进行检查,一个正确程序必须保证这个boolean表达式的值为true;如果该值为false,说明程序已经处于不正确的状态下,系统将给出警告或退出。一般来说,assertion用于保证程序最基本、关键的正确性。assertion检查通常在开发和测试时开启。为了提高性能,在软件发布后,assertion检查通常是关闭的 7、String s = new String("xyz");创建了几个String Object 答:两个,一个字符对象,一个字符对象引用对象 8、Math.round(11.5)等於多少? Math.round(-11.5)等於多少 答: Math.round(11.5)==12;Math.round(-11.5)==-11;round方法返回与参数最接近的长整数,参数加1/2后求其floor 9、short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错 答:short s1 = 1; s1 = s1 + 1; (s1+1运算结果是int型,需要强制转换类型)short s1 = 1; s1 += 1;(可以正确编译) 10、Java有没有goto 答:java中的保留字,现在没有在java中使用 11、数组有没有length()这个方法? String有没有length()这个方法 答:数组没有length()这个方法,有length的属性。String有有length()这个方法 12、Overload和Override的区别。Overloaded的方法是否可以改变返回值的类型

JAVA实验报告第十二章JAVAIO

JAVA实验报告 实验单元七 【实验目的】 1、掌握java.io包中类的继承关系。 2、可以使用File类进行文件的操作。 3、可以使用字节流或字符流操作文件内容并区分出字节流与字符流的区别。 4、掌握内存操作输入/输出流的使用。 5、掌握System类堆IO的三个支持System.out,System.err,System.in。 6、了解Java提供的输入工具类Scanner类的使用。 7、可以使用打印流方便地打印输出的内容,并可以使用JAVA新特性格式化输出。 8、可以使用BufferedRead类读取缓冲区中的内容。 9、了解Java提供的输入公爵泪Scanner类的使用。 【实验环境】 安装了JDK软件的PC机。 【实验内容】 第十二章的例题和习题。 第一题(P430例12.29) 【程序功能内容说明】 实现复制功能 【实验程序原码】 import java.io.* ; public class lyz{ public static void main(String args[]){ if(args.length!=2){ System.out.println("输入的参数不正确。") ; System.out.println("例:java Copy 源文件路径目标文件路径") ;

System.exit(1) ; } File f1 = new File(args[0]) ; File f2 = new File(args[1]) ; if(!f1.exists()){ System.out.println("源文件不存在!") ; System.exit(1) ; } InputStream input = null ; OutputStream out = null ; try{ input = new FileInputStream(f1) ; }catch(FileNotFoundException e){ e.printStackTrace() ; } try{ out = new FileOutputStream(f2) ; }catch(FileNotFoundException e){ e.printStackTrace() ; } if(input!=null && out!=null){ int temp = 0 ; try{ while((temp=input.read())!=-1){ out.write(temp) ; } System.out.println("拷贝完成!") ; }catch(IOException e){ e.printStackTrace() ;

Java开发领域的大牛有哪些

Java开发领域的大牛有哪些 本篇文章小编和大家分享一下Java开发领域的大牛有哪些,对Java开发感兴趣或者是对Java开发大牛感兴趣的小伙伴就随小编一起来了解一下吧。 1、James Gosling 在他12岁的时候,他已能设计电子游戏机,帮忙邻居修理收割机。大学时期在天文系担任程式开发工读生,1977年获得了加拿大卡尔加里大学计算机科学学士学位,1983年获得了美国卡内基梅隆大学计算机科学博士学位,博士论文的题目是:"The Algebraic Manipulation of Constraints"。毕业后到IBM工作,设计IBM第一代工作站NeWS系统,但不受重视。后来转至Sun公司。1990年,与Patrick Naughton和Mike Sheridan等人合作“绿色计划”,后来发展一套语言叫做“Oak”,后改名为Java。1994年底,James Gosling在硅谷召开的“技术、教育和设计大会”上展示Java程式。2000年,Java成为世界上最流行的电脑语言。 2009年四月,Sun被甲骨文公司并购。高斯林于2010年四月时宣布从甲骨文公司离职。 2011年3月29日,高斯林在个人博客上宣布将加入Google[3]。 2011年8月30日,仅仅加入Google数月之后的高斯林就在个人博客上宣布离开Google,加盟一家从事海洋机器人研究的创业公司Liquid Robotics[1],担任首席软件架构师。 在2011年5月建立的Scala公司Typesafe Inc.,高斯林被聘请为公司顾问。 2、Joshua Bloch ——Collections 框架 早在1996年,适逢Java刚刚崭露头角。先是1月份发布JDK1.0,然后是5月底在旧金山召开首届JavaOne大会,年末又是JDK1.1紧跟其后。正是在Java 技术如火如荼、大展拳脚的背景之下,JoshuaBloch来到了Sun。2004 年7月初,就在J2SE5.0发布在即,Jusha Bloch刚刚荣获Sun“杰出工程师(Distinguished Engineer)”的称号之时,他突然离开Sun而去了正值发展态势迅猛的Google,成为了Google的Java首席架构师。 在Bloch来到Sun之后,很快他被从安全组调入核心平台组,从事底层API 设计。至此以后,每逢JDK的重大版本发布,总能在其中见到Joshua的“妙笔”。JDK1.1中的java.math、1.4中的assertions,还有大家所熟识的Collections Framework皆是Joshua一手打造。其中的Collections Framework还获得了当年的

JAVA笔试题--基础很全有答案

第一组 1.下列不可作为java语言修饰符的是(D) A) a1 B) $1 C) _1 D) 11 2.有一段java 应用程序,它的主类名是a1,那么保存它的源文件名可以是(A) A) a1.java B) a1.class C) a1 D) 都对 3.整型数据类型中,需要内存空间最少的是(D) A) short B) long C) int D) byte 4. Java 类可以作为(C) A) 类型定义机制 B) 数据封装机制 C) 类型定义机制和数据封装机制 D) 上述都不对 5.在创建对象时必须(C) A) 先声明对象,然后才能使用对象 B) 先声明对象,为对象分配内存空间,然后才能使用对象 C) 先声明对象,为对象分配内存空间,对对象初始化,然后才能使用对象 D) 上述说法都对 6.在调用方法时,若要使方法改变实参的值,可以(B) A) 用基本数据类型作为参数 B) 用对象作为参数 C) A和B都对 D) A和B都不对 7. Java中(C) A) 一个子类可以有多个父类,一个父类也可以有多个子类 B) 一个子类可以有多个父类,但一个父类只可以有一个子类 C) 一个子类可以有一个父类,但一个父类可以有多个子类 D) 上述说法都不对 8.Java语言具有许多优点和特点,哪个反映了Java程序并行机制的特点?(B) A) 安全性B) 多线性C) 跨平台D) 可移植 9. Character流与Byte流的区别是(C) A) 每次读入的字节数不同B) 前者带有缓冲,后者没有 C) 前者是字符读写,后者是字节读写D) 二者没有区别,可以互换使用

10.以下声明合法的是( D ) A、default String s; B、public final static native int w( ) C、abstract double d; D、abstract final double hyperbolicCosine( ) 11.关于以下application的说明,正确的是( C ) 1.class StaticStuff 2.{ 3.static int x=10; 4.static { x+=5;} 5.public static void main(String args[ ]) 6.{ 7.System.out.println(“x=”+ x); 8.} 9.static { x/=3;} 10. } A、4行与9行不能通过编译,因为缺少方法名和返回类型 B、9行不能通过编译,因为只能有一个静态初始化器 C、编译通过,执行结果为:x=5 D、编译通过,执行结果为:x=3 12.关于以下程序代码的说明正确的是( D ) 1.class HasStatic{ 2.private static int x=100; 3.public static void main(String args[ ]){ 4.HasStatic hs1=new HasStatic( ); 5.hs1.x++; 6.HasStatic hs2=new HasStatic( ); 7.hs2.x++; 8.hs1=new HasStatic( ); 9.hs1.x++; 10.HasStatic.x- -; 11.System.out.println(“x=”+x); 12.} 13.} A、5行不能通过编译,因为引用了私有静态变量 B、10行不能通过编译,因为x是私有静态变量 C、程序通过编译,输出结果为:x=103 D、程序通过编译,输出结果为:x=102 13.以下选项中循环结构合法的是( C ) A、while (int i<7) { i++;

java第十章课后习题解答

第10章Java数据库连接 【1】试述JDBC提供了哪几种连接数据库的方法。 [解答]:JDBC连接数据库的方法取决于JDBC驱动程序类型,Java定义了4种JDBC驱动程序类型: (1)JDBC-ODBC桥驱动程序# JDBC-ODBC桥接器负责将JDBC转换为ODBC,用JdbcOdbc.Class和一个用于访问ODBC驱动程序的本地库实现的。这类驱动程序必须在服务器端安装好ODBC驱动程序,然后通过JDBC-ODBC的调用方法,进而通过ODBC来存取数据库。 (2)Java到本地API 这种类型的驱动程序是部分使用Java语言编写和部分使用本机代码编写的驱动程序,这类驱动程序也必须在服务器端安装好特定的驱动程序,如ODBC驱动程序,然后通过桥接器的转换,把Java API调用转换成特定驱动程序的调用方法,进而操作数据库。(3)网络协议搭配的Java驱动程序 这种驱动程序将JDBC转换为与DBMS无关的网络协议,这种协议又被某个服务器转换为一种DBMS协议。这种网络服务器中间件能够将它的纯Java客户机连接到多种不同的数据库上。所用的具体协议取决于提供者。 (4)本地协议纯Java驱动程序 这种类型的驱动程序将JDBC访问请求直接转换为特定数据库系统协议。不但无须在使用者计算机上安装任何额外的驱动程序,也不需要在服务器端安装任何中间程序,所有对数据库的操作,都直接由驱动程序来完成。 【2】SQL语言包括哪几种基本语句来完成数据库的基本操作。 [解答]:SQL语言包括以下6种基本语句来完成数据库的基本操作: (1)select语句:用来对数据库进行查询并返回符合用户查询标准的结果数据。 (2)create table语句:用来建立新的数据表。 (3)insert 语句:向数据表中插入或添加新的数据行。 (4)update语句:更新或修改符合规定条件的记录。 (5)delete语句:删除数据表中的行或记录。 (6)drop table语句:删除某个数据表以及该表中的所有记录。 【3】Statement接口的作用是什么? [解答]:Statement接口用于执行静态SQL 语句并返回它所生成结果的对象。在默认情况下,同一时间每个Statement对象在只能打开一个ResultSet对象。因此,如果读取一个ResultSet对象与读取另一个交叉,则这两个对象必须是由不同的Statement对象生成的。如果存在某个语句的打开的当前ResultSet对象,则Statement接口中的所有执行方法都会隐式关闭它。 【4】ExecuteQuery()的作用是什么? [解答]:ExecuteQuery()方法执行给定的SQL 语句,返回单个ResultSet对象。发送给数据库的SQL 语句,通常为静态SQL SELECT语句,返回包含给定查询所生成数据的ResultSet对象。

java经典小程序,java入门100例!

1,编写程序,判断给定的某个年份是否是闰年。 闰年的判断规则如下: (1)若某个年份能被4整除但不能被100整除,则是闰年。 (2)若某个年份能被400整除,则也是闰年。 import java.util.Scanner; class Bissextile{ public static void main(String[] arge){ System.out.print("请输入年份"); int year; //定义输入的年份名字为“year” Scanner scanner = new Scanner(System.in); year = scanner.nextInt(); if (year<0||year>3000){ System.out.println("年份有误,程序退出!"); System.exit(0); } if ((year%4==0)&&(year%100!=0)||(year%400==0)) System.out.println(year+" is bissextile"); else System.out.println(year+" is not bissextile "); } } 2,给定一个百分制的分数,输出相应的等级。 90分以上A级 80~89 B级 70~79 C级 60~69 D级 60分以下E级 import java.util.Scanner; class Mark{ public static void main(String[] args){ System.out.println("请输入一个分数"); //定义输入的分数为“mark”,且分数会有小数 double mark; Scanner scanner = new Scanner(System.in); mark = scanner.nextDouble(); //判断是否有输入错误。 if(mark<0||mark>100){

JAVA编程不得不看的几本经典书籍

为了帮助对java编程感兴趣的同学更好、更快的提高编程技术,武汉北大青鸟光谷校区专业老师在此推荐几本学习编程非常有用的书籍,以供大家参考。 入门类 1.《java从入门到精通》(第3版) 【内容介绍】 本书从初学者角度出发,通过通俗易懂的语言、丰富多彩的实例,详细介绍了使用Java 语言进行程序开发应该掌握的各方面技术。全书共分28章,包括:初识Java,熟悉Eclipse 开发工具,Java 语言基础,流程控制,字符串,数组,类和对象,包装类,数字处理类,接口、继承与多态,类的高级特性,异常处理,Swing程序设计,集合类,I/O输入输出,反射,枚举类型与泛型,多线程,网络通信,数据库操作,Swing表格组件,Swing树组件,Swing其他高级组件,高级布局管理器,高级事件处理,AWT绘图与音频播放,打印技术和企业进销存管理系统等。所有知识都结合具体实例进行介绍,涉及的程序代码给出了详细的注释,可以使读者轻松领会Java程序开发的精髓,快速提高开发技能。 【推荐理由】 本书内容详尽,实例丰富,非常适合作为编程初学者的学习用书,也适合作为开发人员的查阅、参考资料。 2.《java核心技术卷一》 【内容介绍】 本书是Java技术经典参考书,多年畅销不衰,第7版在保留以前版本风格的基础上,涵盖Java2开发平台标准版J2SE5.0的基础知识,主要内容包括面各对象程序设计、反射与代理、接口与内部类、事件监听器模型、使用Swing UI工具箱进行图形用户界面设计,异常处理、流输入/输出和对象序列化、泛型程序设计等。本书内容翔实、深入浅出,附有大量程序实例,极具实用价值,是Java初学者和Java程序员的必备参考书。 【推荐理由】 本书出版以来,深受广大读者的喜爱,它全面介绍了Java SE的基础知识,不但具有使用价值,而且易于阅读,易理解,它必成为想进军Java和基础薄弱同学的不二之选。 3.《java编程语言》 【内容介绍】 本书以Java语言创建者的独特视角向读者展现了为什么以及如何使用Java语言,以便读者理解Java语言的基本设计目标以及它在现实世界中的应用。本书介绍的是Java语言的

百一测评——Java经典面试题 带答案

职业技能题库&在线云笔试平台https://www.360docs.net/doc/e616968327.html, 试卷名称:Java经典面试题带答案 试卷描述:java笔试题目、招聘笔试、微信考试、在线考试 试卷链接:https://www.360docs.net/doc/e616968327.html,/store/open/paperInfo/41651 试卷限时:50分 一.单项选择题 每题分值:2.5分 是否题目乱序:是 是否选项乱序:是 是否可回溯:是 难度:中 1.[单选]Java是从()语言改进重新设计。 A.Ada B.C++ C.Pasacal D.BASIC 答案:B 2.[单选]下列语句哪一个正确() A.Java程序经编译后会产生machine code B.Java程序经编译后会产生byte code C.Java程序经编译后会产生DLL D.以上都不正确

职业技能题库&在线云笔试平台https://www.360docs.net/doc/e616968327.html, 答案:B 3.[单选]下列说法正确的有() A.class中的constructor不可省略 B.constructor必须与class同名,但方法不能与class同名 C.constructor在一个对象被new时执行 D.一个class只能定义一个constructor 答案:C 4.[单选]提供Java存取数据库能力的包是() A.java.sql B.java.awt C.https://www.360docs.net/doc/e616968327.html,ng D.java.swing 答案:A 5.[单选]下列运算符合法的是() A.&& B.<> C.if D.:= 答案:A 6.[单选]执行如下程序代码 a=0;c=0;

职业技能题库&在线云笔试平台https://www.360docs.net/doc/e616968327.html, do{ --c; a=a-1; }while(a>0); 后,C的值是() A.0 B.1 C.-1 D.死循环 答案:C 7.[单选]下列哪一种叙述是正确的() A.abstract修饰符可修饰字段、方法和类 B.抽象方法的body部分必须用一对大括号{}包住 C.声明抽象方法,大括号可有可无 D.声明抽象方法不可写出大括号 答案:D 8.[单选]下列语句正确的是() A.形式参数可被视为localvariable B.形式参数可被字段修饰符修饰 C.形式参数为方法被调用时,真正被传递的参数 D.形式参数不可以是对象

Java经典编程题50道

【程序1】 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一 对兔子,假如兔子都不死,问每个月的兔子总数为多少? 1.程序分析:兔子的规律为数列1,1,2,3,5,8,13,21.... 【程序2】 题目:判断101-200之间有多少个素数,并输出所有素数。 1.程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除, 则表明此数不是素数,反之是素数。 【程序3】 题目:打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。例如: 153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。 1.程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。 【程序4】 题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。 程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成: (1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。 (2)如果n<>k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n,重复执行第一步。 (3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。 【程序5】 题目:利用条件运算符的嵌套来完成此题:学习成绩>=90分的同学用A表示,60-89分之间的用B表示,60分以下 的用C表示。 1.程序分析:(a>b)?a:b这是条件运算符的基本例子。 【程序6】 题目:输入两个正整数m和n,求其最大公约数和最小公倍数。 1.程序分析:利用辗除法。 【程序7】 题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。 1.程序分析:利用while语句,条件为输入的字符不为'\n'. 【程序8】 题目:求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加), 几个数相加有键盘控制。 1.程序分析:关键是计算出每一项的值。 【程序9】

java开发实战经典答案

java开发实战经典答案 【篇一:java开发实战经典】 ass=txt>首先需要为读者说明的是,《java开发实战经典》,如图1所示,不只是一本纯粹讲解基础的书,里面更多的内容是为java ee的开发而服务的,所以读者在学习本书的时候应该重点培养的是思想,按照程序解释问题的思想。在本书的序言的视频之中已经为读者介绍了本书的整体结果,实际上每个读者必须首先搞清楚java se和java ee的关系,如图2所示。 从图2中可以清楚的发现,如果要想进行java ee的开发,java se 是其中必要的组成部分,这也就是为什么在学习java ee之前要读者一定要有扎实的java se基础了。 在本书的序章中也为读者讲解过,java se核心的部分就是以下四个: 1、面向对象:主要是要求读者建立好一个面向对象的概念,并可以灵活的运用这些概念进行程序的分析,可以说在整个java se部分核心就是面向对象的开发,里面涉及的概念较多,但是所有的概念最终都是为接口和抽象类服务的,而所有java开发中涉及到的各个设计模式,实际上也是针对于接口和抽象类的应用。 2、类集框架:大部分的读者都应该听过或学习过数据结构,虽然从大学就开始学习《数据结构与算法》,但是实际上来讲,学习完后真正可以进行数据结构编写的人并不多,而且大部分的数据结构都是以c语言为基础讲解的,而类集就相当于是java实现的数据结构,包括树、链表、队列等等,如果只是进行应用层次开发的读者没有必要深入了解其内部的操作,但是必须清楚的掌握其核心的接口和各个操作类。 3、io操作:对于大部分的自学者而言,io操作也许是最难过的一个坎了,如果没有很好的理解抽象类和接口的概念,那么要想充分的理解io操作是很难的,在整个io操作之中,完整的体现了java 语言多态性的设计思想,而且在学习io的时候必须始终把握住一个原则:“根据使用的子类不同,输入输出的位置也不同”。 4、java数据库操作(jdbc):jdbc首先并不能算是一门技术,更多的应该算是一种服务—— java提供的数据库访问服务,里面提供了大量的操作接口,各个数据库生产商根据这些接口实现自己的数据库操作,从面向对象的设计上来看,用户完全没有必要考虑其

java经典案例与项目

Java学习的经典的案例收集 1:九九乘法表 /* 功能:实现九九乘法表的输出 时间:2013年7月4日 */ public class jiujiuchengfabiaoDemo { public static void main(String[] args) { for(int i=1;i<=9;i++){ for(int j=1;j<=i;j++){ System.out.print(j+"*"+i+"="+(i*j)+"\t"); } System.out.println(); } } } 结果: 1*1=1 1*2=2 2*2=4 1*3=3 2*3=6 3*3=9 1*4=4 2*4=8 3*4=12 4*4=16 1*5=5 2*5=10 3*5=15 4*5=20 5*5=25 1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36 1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49 1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64 1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81 2:输出等腰三角形 public class SanJiaoDemo { public static void main(String[] args) { for(int a=1;a<=5;a++){ for(int b=1;b<=5-a;b++){ System.out.print(" "); }

JAVA笔试题--Java选择题100道

1.下列不可作为java语言修饰符的是(D) A) a1 B) $1 C) _1 D) 11 2.有一段java 应用程序,它的主类名是a1,那么保存它的源文件名可以是(A) A) a1.java B) a1.class C) a1 D) 都对 3.整型数据类型中,需要内存空间最少的是(D) A) short B) long C) int D) byte 4. Java 类可以作为(C) A) 类型定义机制 B) 数据封装机制 C) 类型定义机制和数据封装机制 D) 上述都不对 5.在创建对象时必须(C) A) 先声明对象,然后才能使用对象 B) 先声明对象,为对象分配内存空间,然后才能使用对象 C) 先声明对象,为对象分配内存空间,对对象初始化,然后才能使用对象 D) 上述说法都对 6.在调用方法时,若要使方法改变实参的值,可以(B) A) 用基本数据类型作为参数 B) 用对象作为参数 C) A和B都对 D) A和B都不对 7. Java中(C) A) 一个子类可以有多个父类,一个父类也可以有多个子类 B) 一个子类可以有多个父类,但一个父类只可以有一个子类 C) 一个子类可以有一个父类,但一个父类可以有多个子类 D) 上述说法都不对 8.Java语言具有许多优点和特点,哪个反映了Java程序并行机制的特点?(B) A) 安全性B) 多线性C) 跨平台D) 可移植 9. Character流与Byte流的区别是(C) A) 每次读入的字节数不同B) 前者带有缓冲,后者没有 C) 前者是字符读写,后者是字节读写D) 二者没有区别,可以互换使用 10.以下声明合法的是( D ) A、default String s; B、public final static native int w( ) C、abstract double d; D、abstract final double hyperbolicCosine( ) 11.关于以下application的说明,正确的是( C ) 1.class StaticStuff 2.{ 3.static int x=10; 4.static { x+=5;} 5.public static void main(String args[ ]) 6.{ 7.System.out.println(“x=”+ x); 8.} 9.static { x/=3;}

Java程序设计课程教学大纲

“Java程序设计”课程教学大纲 教研室主任:韩莉莉执笔人:韩莉莉 一.课程基本信息 开课单位:管理学院 课程名称:Java程序设计 课程编号:182022 英文名称:Java programming 课程类型:专业基础课 总学时:68(理论)+34(实验) 学分:3 开设专业:信息系统与信息管理 先修课程:C语言 二.课程任务和目标 (一)课程任务 《Java程序设计》是计算机软件专业的核心课程之一,也是基础课程之一,Java 语言是当前十分流行的一门经典网络编程语言。本课程主要介绍了Java 语言的功能和特点,主要内容包括:Java 语言基础知识,Java 语法构成,面向对象编程技术,常用系统类使用,图形用户界面设计,图形处理,多媒体处理,异常处理,文件和流处理,多线程技术和网络编程技术。目的是使学生掌握一门高级网络程序设计语言,了解网络程序设计方法,具有基本的进行网络程序设计的能力。 (二)课程目标 1.能力目标 (1)培养学生规范编码和良好的程序设计风格 (2)培养学生面向对象编程的思维和提高逻辑思维能力 (3)培养学生发现问题、分析问题和解决问题的能力 (4)培养良好职业素质和职业道德 (5)培养团队协作和和谐的沟通能力 2.知识目标

(1)掌握Java语言基础 (2)熟练掌握对象和类 (3)掌握继承与多态 (4)熟练掌握数组和字符串 (5)掌握Java的异常处理 (6)掌握Java的输入/输出 (7)了解GUI程序设计 (8)熟练掌握Java的集合 (9)了解多线程和网络编程 (10)掌握JDBC技术 (11)了解面向对象的常用设计模式 (12)掌握Java程序设计的思想和方法 三、教学内容与要求 第一章 Java概述 1.1 Java起源、Java特点、Java开发环境搭建、第一个Java小程序例子。目的要求: 1.了解Java的起源 2.了解Java的特点 3.熟练掌握搭建Java开发环境 第二章 Java基本语法 2.1 数据类型,运算符、表达式及其控制结构。 2.2 数组和String字符串。 2.3 命名规范和注释。 目的要求: 1.掌握运算和表达式 2.熟练掌握语句、字符串和数组的常用方法和素性 第三章类与对象 3.1类的定义、对象的创建、类与对象关系、数组对象。 3.2类的属性和方法的定义、方法重载和递归。 3.3静态成员、封装、构造方法。

相关文档
最新文档