java经典编程题
很详细的帮你写下,呵呵,所以要给分哦!
1、
(1)源程序如下:
public class One {
public static void main(String[] args) {
String name = "张三";
int age = 23;
char sex = '男';
String myclass = "某某专业2班";
System.out.println("姓名:" + name);
System.out.println("姓名:" + age);
System.out.println("姓名:" + sex);
System.out.println("姓名:" + myclass);
}
}
(2)
编写完程序的后缀名是.java,如本题,文件名就是One.java。
开始\运行\cmd,进入“命令提示符窗口”,然后用javac编译器编译.java文件,语句:javac One.java。
(3)
编译成功后,生成的文件名后缀是.class,叫做字节码文件。再用java解释器来运行改程序,语句:java One
2、编写程序,输出1到100间的所有偶数
(1)for语句
public class Two1 {
public static void main(String[] args) {
for(int i=2;i<=100;i+=2)
System.out.println(i);
}
}
(2)while语句
public class Two2 {
public static void main(String[] args) {
int i = 2;
while (i <= 100) {
System.out.println(i);
i += 2;
}
}
}
(3)do…while语句
public class Two3 {
public static void main(String[] args) {
int i = 2;
do {
System.out.println(i);
i += 2;
}while(i<=100);
}
}
3、编写程序,从10个数当中找出最大值。
(1)for循环
import java.util.*;
public class Three1 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int number;
int max = 0;
for (int i = 0; i < 10; i++) {
System.out.print("输入第" + (i + 1) + "个数:");
number = input.nextInt();
if (max < number)
max = number;
}
System.out.println("最大值:" + max);
}
}
(2)while语句
import java.util.*;
public class Three2 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int number;
int max = 0;
int i = 0;
while (i < 10) {
System.out.print("输入第" + (i + 1) + "个数:");
number = input.nextInt();
if (max < number)
max = number;
i++;
}
System.out.println("最大值:" + max);
}
}
(3)do…while语句
import java.util.*;
public class Three3 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int number;
int max = 0;
int i = 0;
do {
System.out.print("输入第" + (i + 1) + "个数:");
number = input.nextInt();
if (max < number)
max = number;
i++;
}while(i<10);
System.out.println("最大值:" + max);
}
}
4、编写程序,计算从1到100之间的奇数之和。
(1)for循环
public class Four1 {
public static void main(String[] args) {
int sum=0;
for(int i = 1;i<=100;i+=2){
sum+=i;
}
System.out.println("1~100间奇数和:" + sum);
}
}
(2)while语句
public class Four2 {
public static void main(String[] args) {
int sum = 0;
int i = 1;
while (i <= 100) {
sum += i;
i += 2;
}
System.out.println("1~100间奇数和:" + sum);
}
}
(3)do…while语句
public class Four3 {
public static void main(String[] args) {
int sum = 0;
int i = 1;
do {
sum += i;
i += 2;
} while (i <= 100);
System.out.println("1~100间奇数和:" + sum);
}
}
5、
(1)什么是类的继承?什么是父类?什么是子类?举例说明。
继承:是面向对象软件技术当中的一个概念。如果一个类A继承自另一个类B,就把这个A称为"B的子类",而把B称为"A的父类"。继承可以使得子类具有父类的各种属性和方法,而不需要再次编写相同的代码。在令子类继承父类的同时,可以重新定义某些属性,并重写某些方法,即覆盖父类的原有属性和方法,使其获得与父类不同的功能。另外,为子类追加新的属性和方法也是常见的做法。继承需要关键字extends。举例:
class A{}
class B extends A{}
//成员我就不写了,本例中,A是父类,B是子类。
(2)编写一个继承的程序。
class Person {
public String name;
public int age;
public char sex;
public Person(String n, int a, char s) {
name = n;
age = a;
sex = s;
}
public void output1() {
System.out.println("姓名:" + name + "\n年龄:" + age + "\n性别:" + sex);
}
}
class StudentPerson extends Person {
String school, department, subject, myclass;
public StudentPerson(String sc, String d, String su, String m, String n,
int a, char s) {
super(n, a, s);
school = sc;
department = d;
subject = su;
myclass = m;
}
public void output2() {
super.output1();
System.out.println("学校:" + school + "\n系别:" + department + "\n专业:"
+ subject + "\n班级:" + myclass);
}
}
public class Five2 {
public static void main(String[] args) {
StudentPerson StudentPersonDemo = new StudentPerson("某某大学", "某某系别",
" 某专业", "某某班级", " 张三", 23, '男');
StudentPersonDemo.output2();
}
}
㈡ Java编程常见面试题目,要求正确答案
1.
final关键字,修饰类,方法,或者成员变量为最终的,使其不可被修改
finally可跟在try catch语句或者try语句后使用,表示这个方法一定会被执行
finalize通知垃圾回收机制回收被finalize标示的对象,但不保证马上就会执行
2.
可以继承也可以实现接口
由于构造方法必须与类型一致,所以其没有构造方法,继承有参构造方法必须调用父类的
直接new interface就是实现接口
3.
Nested Class (一般是C++的说法),Inner Class (一般是JAVA的说法)。
Java内部类与C++嵌套类最大的不 同就在于是否有指向外部的引用上
4.
&&短路与,当两个条件,如a>b&&b>c,中a>b为假时b>c这个语句不会被执行而直接返回false
&两个条件都会被执行
5.
最重要区别是hashtable是线程安全的(同步)而hashMap不是。。
6.
Collection 层次结构中的根接口,而Collections是一个工具类,它包含有各种有关集合操作的静态方法
7.
系统测试的时候
8.
垃圾回收机制,因为java不能手动清理内存,而内存不清理系统资源会被耗尽,所以要有GC
9.
两个,String pool一个"xyz",堆里面一个String 对象
10.
11 -11
11.
s1+1,s1自动转换成int类型,其结果返回一个int,所以报错
12.
sleep在睡眠一段时间后会自己醒来,而wait不能,它必须别的线程唤醒它(notify或者notifyAll)
13.
java有标签但是没goto
14.
数组没length()方法只有length这个属性,String有
15.
方法的重写Overriding和重载Overloading是Java多态性的不同表现。重写Overriding是父类与子类之间多态性的一种表现,重载Overloading是一个类中多态性的一种表现。如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写 (Overriding)。子类的对象使用这个方法时,将调用子类中的定义,对它而言,父类中的定义如同被“屏蔽”了。如果在一个类中定义了多个同名的方法,它们或有不同的参数个数或有不同的参数类型,则称为方法的重载(Overloading)。Overloaded的方法是可以改变返回值的类型。
16.
用equals ==只判断内存地址是否一致,而equals判断是否引用的是同一个对象
17.
IndexOutOfBoundsException 数组越界
NullPointerException 空指针异常
SystemException 系统异常
18.
error表示恢复不是不可能但很困难的情况下的一种严重问题。比如说内存溢出。不可能指望程序能处理这样的情况。
exception 表示一种设计或实现问题。也就是说,它表示如果程序运行正常,从不会发生的情况
19.
List,Set是 Map不是
20.
abstract class可以有实现方法interface不能
21.
都不能
22.
都可以
23.
start()
24.
可以
25.
不可以,String 是final
26.
不能
27.
会,先执行finally里的,再return
28.
2<<3
29.
如果不重写方法是不可以,但是重写了就难说
30.
引用
31.
byte可以,因为其可以自动转换成int类型,其他都不可以
32.
public class Singleton
{
private Singleton(){}
//在自己内部定义自己一个实例,是不是很奇怪?
//注意这是private 只供内部调用
private static Singleton instance = new Singleton();
//这里提供了一个供外部访问本class的静态方法,可以直接访问
public static Singleton getInstance() {
return instance;
}
}
第二种形式:
public class Singleton {
private static Singleton instance = null;
public static synchronized Singleton getInstance() {
//这个方法比上面有所改进,不用每次都进行生成对象,只是第一次
//使用时生成实例,提高了效率!
if (instance==null)
instance=new Singleton();
return instance; }
}
㈢ java经典编程案例有哪些
java编程的记事本:
import java.util.*;
public class JieChengExample
{
public static void main(String args[])
{
Scanner input=new Scanner(System.in);
int n,sum;
Jiecheng jie=new Jiecheng();
System.out.print("输入n的值:");//输入有几个阶乘相加
n=input.nextInt();
sum=0;
for(int i=1;i<=n;i++)
{
sum=sum+jie.jiecheng(i);//这是n个阶乘相加
}
System.out.println("1!+2!+3!+....+n!的和是:"+sum);
}
}
class Jiecheng
{
public int jiecheng(int temp)//算阶乘的方法
{
int sum=1;
for(int i=1;i<=temp;i++)
{
sum=sum*i; //计算阶乘
}
return sum;//将一个阶乘返回
}
}
2.java赛马游戏:
import java.util.Random;
public class Test {
public static void main(String[] args) {
Competition c = new Competition();
Thread T = new Thread(c);
T.start();
}
}
class Competition implements Runnable{
int red = 0;
int green = 0;
int Speed [] = new int [2];
Competition(){
}
public void run(){
Random r = new Random();
for(int a= 0;a<500;a++){
for(int j = 0;j<2;j++){
Speed[j] = r.nextInt(2);
red = red + Speed[j];
Speed[j] = r.nextInt(2);
green = green + Speed[j];
}
System.out.println("red的速度为"+red);
System.out.println("green的速度为"+green);
while(red >=500 || green>=500){
if(red >=500){
System.out.println("red先抵达终点线");
}
if(green >= 500){
System.out.println("green先抵达终点线");
}
if(green ==500 && red ==500 ){
System.out.println("两个同时到达");
}
return;
}
}
/* if(red >green){
System.out.println("Redwin"+red);
}
if(red<green){
S...import java.util.Random;
public class Test {
public static void main(String[] args) {
Competition c = new Competition();
Thread T = new Thread(c);
T.start();
}
}
class Competition implements Runnable{
int red = 0;
int green = 0;
int Speed [] = new int [2];
Competition(){
}
public void run(){
Random r = new Random();
for(int a= 0;a<500;a++){
for(int j = 0;j<2;j++){
Speed[j] = r.nextInt(2);
red = red + Speed[j];
Speed[j] = r.nextInt(2);
green = green + Speed[j];
}
System.out.println("red的速度为"+red);
System.out.println("green的速度为"+green);
while(red >=500 || green>=500){
if(red >=500){
System.out.println("red先抵达终点线");
}
if(green >= 500){
System.out.println("green先抵达终点线");
}
if(green ==500 && red ==500 ){
System.out.println("两个同时到达");
}
return;
}
}
/* if(red >green){
System.out.println("Redwin"+red);
}
if(red<green){
System.out.println("Greenwin"+green);
}
if(red == green){
System.out.println("equal");*/
JAVA的介绍:
Java是一种可以撰写跨平台应用程序的面向对象的程序设计语言。Java技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。
㈣ java新手编程题目
思路如下:
随即4个数字(1~6) 用来模拟4个色子
数字全部存入数组ary,.然后升序排列.
如果满足两两相等,那么已经排序好的数字,就是ary[0]=ary[1]; ary[2]=ary[3];
然后判断ary[0]+ary[2]==6 .如果等于6 那么满足要求,不等于6 ,那么继续下次循环
参考代码
importjava.util.Arrays;
publicclassRandomDemo{
publicstaticvoidmain(String[]args){
intloop=5;//重复5次试验
for(intk=0;k<loop;k++){
inttimes=0;//循环的次数
int[]ary;//数组,存储4个随机数
while(true){
times++;//次数+1
ary=newint[4];
for(inti=0;i<ary.length;i++){
ary[i]=getNum();//添加随机数
}
Arrays.sort(ary);//用数组工具类进行排序
//因为有两两相等的情况,那么就是ary[0]=ary[1]ary[2]=ary[3]能减少很多的ifelse判断
//如果两两相等.且两值和等于6,那么跳出循环
if(ary[0]==ary[1]&&ary[2]==ary[3]&&ary[0]+ary[2]==6){
break;//跳出
}
}
System.out.println("两个数字分别是"+ary[0]+"和"+ary[2]+" "+"循环了"+times+"次");
}
}
//该方法用于返回一个[1,6]之间的数字
privatestaticintgetNum(){
return(int)(Math.random()*6)+1;//1~6之间的随即数
}
}
测试结果
两个数字分别是1和5 循环了22次
两个数字分别是1和5 循环了12次
两个数字分别是3和3 循环了105次
两个数字分别是1和5 循环了128次
两个数字分别是2和4 循环了96次