// 2的二进制是000000010 -2的二进制是11111110
// 向右移动三位 11111111 它对应-1
int a= -2; System.out.println(a>>3);
答案-1
2.
private static int a[] = new int[5]; public static void main(String[] args) { System.out.println(a[0]); }
3.
public static void main(String[] args) { System.out.println(method((byte)1,1.2)); } private static ? method(byte x, double y) { return (short)x/y*2; }
4.下列类定义中哪些是合法的抽象类的定义?
A、abstract Animal{abstract void growl();}
B、class abstract Animal{abstract void growl();}
C、abstract class Animal{abstract void growl();}
D、abstract class Animal{abstrac t void growl(){System.out.println(“growl”);};}
5.下列类定义中哪些是合法的抽象类的定义?
A、abstract Animal{abstract void growl();}
B、class abstract Animal{abstract void growl();}
C、abstract class Animal{abstract void growl();}
D、abstract class Animal{abstrac t void growl(){System.out.println(“growl”);};}
6.有以下程序片段,下列哪个选项不能插入到行1。( )
1.
2.public class Interesting{
3.//do sth
4. }
A、import java.awt.*; B、package mypackage;
C、class OtherClass{ } D、public class MyClass{ }
选择D,不能有两个public类,A是引用包,B是创建包,C是一个普通类
7.关于 for循环和 while循环的说法哪个正确? ( )
A.while循环先判断后执行,for循环先执行后判断。
B.while循环判断条件一般是程序结果,for循环的判断条件一般是非程序结果
C.两种循环任何时候都不可以替换
D.两种循环结构中都必须有循环体,循环体不能为空
最有可能选B
8. 输出结果
public class CPTest { public static void main(String[] args) { // TODO Auto-generated method stub Child child = new Child(); child.printAll(); } } class Child extends Parent { public Child(){ System.out.println("Child-gouzao"); } void printMe(){ System.out.println("childMe"); } void printAll(){ super.printMe(); this.printMe(); printMe(); } } class Parent{ public Parent(){ System.out.println("Parent-gouzao"); } void printMe(){ System.out.println("printMe"); } }
9.java标识符
标识符就是用于给 Java 程序中变量、类、方法等命名的符号。
1. 标识符可以由字母、数字、下划线(_)、美元符($)组成,但不能包含 @、%、空格等其它特殊字符,不能以数字开头。譬如:123name 就是不合法滴
2. 标识符不能是 Java 关键字和保留字( Java 预留的关键字,以后的升级版本中有可能作为关键字),但可以包含关键字和保留字。如:不可以使用 void 作为标识符,但是 Myvoid 可以
3. 标识符是严格区分大小写的。 所以涅,一定要分清楚 imooc 和 IMooc 是两个不同的标识符哦!
4. 标识符的命名最好能反映出其作用,做到见名知意。
Java 语言中有一些具有特殊用途的词被称为关键字。
下列哪个是java中的标识符:
fiedname supper 3number #number
10.在使用interface声明一个接口时,只可以使用( )修饰符修饰该接口?
A、private B、protected
C、private protected D、public
https://www.cnblogs.com/BaiLaowu/p/6618117.html
11.下列说法正确的是( )
数组是一种对象 数组属于一种原生类 int number=[]={31,23,33,43,35,63} 数组的大小可以任意改变
12.下面的程序创建了一个文件输出流对象,用来向文件test.txt中输出数据,假设程序当前目录下不存在文件test.txt,编译下面的程序Test.java后,将该程序运行3次,则文件test.txt 的内容是()。
import java.io.FileOutputStream; public class PinganTest { public static void main(String[] args) { try { String string ="ABCDE"; byte b[] =string.getBytes(); FileOutputStream file = new FileOutputStream("D:\\test.txt",true); file.write(b); file.close(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); System.out.println(e.toString()); } } }
A.ABCABC
B.ABCDE
C.Test
D.ABCDE ABCDE ABCDE
13.下面程序的运行结果 (好题)
public class PinganTest { public static void main(String[] args) { Thread thread = new Thread(){ public void run() { try { Thread.sleep(100); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } pong(); }; }; thread.start();//thread.run();呢? System.out.print("ping"); } public static void pong() { System.out.print("pong"); } }
pingpong,pongping,前两者都有可能,都不输出
14.下面哪个流类属于面向字符的输入流( )
A BufferedWriter B FileInputStream C ObjectInputStream D InputStreamReader
答案:D
解析:Java的IO操作中有面向字节(Byte)和面向字符(Character)两种方式。
面向字节的操作为以8位为单位对二进制的数据进行操作,对数据不进行转换,这些类都是InputStream和OutputStream的子类。
面向字符的操作为以字符为单位对数据进行操作,在读的时候将二进制数据转为字符,在写的时候将字符转为二进制数据,这些类都是Reader和Writer的子类。
总结:以InputStream(输入)/OutputStream(输出)为后缀的是字节流;
以Reader(输入)/Writer(输出)为后缀的是字符流。
扩展:Java流类图结构,一目了然,解决大部分选择题:
15.输入一个整型数组,数组里有正数也有负数。数组中一个或者连续的多个整数组成一个字数组。求所有字数组的和的最大值。要求时间复杂度为O(n)。例如输入的数组为1, -2, 3, 10, -4, 7, 2, -5,和最大的子数组为3, 10, -4, 7, 2,因此输出为该子数组的和18
思路:
因为时间复杂度为O(n),则只能遍历一次数组,这里同时使用两个变量sum和max,其中sum保存的是当前的和,若sum<0,则从下一个位置从新记录,max记录的是历史的最大值,只有当sum>max时用sum替换max。
public class Item { public static void main(String args[]) { int array[] = {1, -2, 3, 10, -4, 7, 2, -5}; System.out.println(findMax(array)); } public static int findMax(int array[]){ //加上约束条件,防止当数组为空时造成数组越界 if (array.length == 0) { return 0; } int max = array[0]; int sum = 0; for(int i=0; i<array.length; i++){ //如果加上某个元素sum>=0的话,就加; //当数组全为负数的时候只要有加法就一定比原来的数小,此时就相当于找出数组内最大的数 if(sum >= 0) { sum += array[i]; } else{ sum = array[i]; //否则从当前位置重新计算 } if(sum > max){ max = sum; } } return max; } }
redis可以直接改list值吗
dubbo用户调用消费者经过哪些
执行计划器除了type有其他哪些
每次都去找吗
内存模型 1比1比8可以改吗
jvm优化