Java面向对象编程

如果希望监听TCP端口9000,服务器端应该怎样创建socket?

A. new Socket("localhost",9000);

B. new ServerSocket(9000);

C. new Socket(9000);

D. new ServerSocket("localhost",9000);

答案:B

下列哪个类的声明是正确的?

A. abstract final class HI{}

B. abstract private move(){}

C. protected private number;

D. public abstract class Car

答案:D

java 接口的修饰符可以为()

A. private

B. protected

C. final

D. abstract

答案:D

jre 判断程序是否执行结束的标准是()

A. 所有的前台线程执行完毕

B. 所有的后台线程执行完毕

C. 所有的线程执行完毕

D. 和以上都无关

答案:A

int i=5; int s=(i++)+(++i)+(i--)+(--i); s=( )//s 的值是什么?

A. 28

B. 25

C. 21

D. 26

E. 24

F. 23

答案:E

如下语句通过算术运算和逻辑运算之后i和 j的结果是()

int i=0;
int j=0;
if((++i>0)||(++j>0)) {
//打印出i和j的值。
}

A. i=0;j=0

B. i=1;j=1

C. i=0;j=1

D. i=1;j=0

答案:D

下面不属于Object类中方法的是:

A. hashCode()

B. finally()

C. wait()

D. toString()

答案:B

下列哪项不属于jdk1.6垃圾收集器?

A. Serial收集器

B. parNew收集器

C. CMS收集器

D. G1收集器

答案:D

instanceof运算符能够用来判断一个对象是否为:

A. 一个类的实例

B. 一个实现指定接口的类的实例

C. 全部正确

D. 一个子类的实例

答案:C

对于java类型变量char c,short s,float f,double d,表达式c*s+f+d的结果类型为()

A. float

B. char

C. short

D. double

答案:D

反转部分单链表
题目描述:给定一个单链表,在链表中把第 L 个节点到第 R 个节点这一部分进行反转。
 输入描述:n 表示单链表的长度。 val 表示单链表各个节点的值。L 表示翻转区间的左端点。 R 表示翻转区间的右端点。 
输出描述:在给定的函数中返回指定链表的头指针。

 

public class Main44 {

    //首先定义单链表的节点

    static class Node{

        int val;

        Node next;

        public Node(int val){

            this.val=val;

        }

    }

    public static void main(String[] args) {

        Scanner scanner=new Scanner(System.in);

        //获取当前链表的节点个数

        int n=scanner.nextInt();

        //吃掉nextInt方法的换行符

        scanner.nextLine();

        // "1 2 3 4 5"

        String nodeValue=scanner.nextLine();

        String[] nodes=nodeValue.split(" ");

        //进行链表的创建

        Node dummyHead=new Node(-1);

        Node tail=dummyHead;

        for (int i = 0; i < n; i++) {

            //链表的尾插

            Node node=new Node(Integer.parseInt(nodes[i]));

            tail.next=node;

            tail=node;

        }

        //获取左区间和右区间的范围  "1 3"

        String part=scanner.nextLine();

        //1

        int left=Integer.parseInt(part.split(" ")[0]);

        //3

        int right=Integer.parseInt(part.split(" ")[1]);

        Node newHead=reversePartList(dummyHead.next,left,right);

        //进行输出处理

        while (newHead !=null){

            System.out.print(newHead.val+" ");

            newHead=newHead.next;

        }

    }



    public  static Node reversePartList(Node head,int left,int right){

        Node dummyHead=new Node(-1);

        dummyHead.next=head;

        Node prev=dummyHead;

        for (int i = 1; i < left; i++) {

            prev=prev.next;

        }

        //prev引用指向待反转区间的前驱节点,cur引用就是待反转区间的第一个节点

        Node cur=prev.next;

        for (int i = left; i < right; i++) {

            Node third=cur.next;

            //先把third引用从链表中删除

            cur.next=third.next;

            //再把third节点插入prev中

            third.next=prev.next;

            prev.next=third;

        }

        return dummyHead.next;

    }

}
猴子分桃
题目描述:老猴子辛苦了一辈子,给那群小猴子们留下了一笔巨大的财富——一大堆桃子。老猴子决定把这些桃子分给小猴子。 第一个猴子来了,它把桃子分成五堆,五堆一样多,但还多出一个。它把剩下的一个留给老猴子,自己拿走其中的一堆。 第二个猴子来了,它把桃子分成五堆,五堆一样多,但又多出一个。它把多出的一个留给老猴子,自己拿走其中的一堆。 后来的小猴子都如此照办。最后剩下的桃子全部留给老猴子。 
这里有n只小猴子,请你写个程序计算一下在开始时至少有多少个桃子,以及最后老猴子最少能得到几个桃子。 
输入描述:输入包括多组测试数据。
 每组测试数据包括一个整数n(1≤n≤20)。 
输入以0结束,该行不做处理。
 输出描述:每组测试数据对应一行输出。 
包括两个整数a,b。 
分别代表开始时最小需要的桃子数,和结束后老猴子最少能得到的桃子数。

 

public class Main45 {

    public static void main(String[] args) {

        Scanner scanner=new Scanner(System.in);

        while (scanner.hasNext()){

            int n=scanner.nextInt();

            if (n==0){

                break;

            }

            long a=(long) (Math.pow(5,n)-4);

            long b=(long) (Math.pow(4,n)+n-4);

            System.out.println(a+" "+b);

        }

    }

}

你可能感兴趣的:(java要笑着学,操作系统哪些事?,java,服务器,网络)