努力经营当下,直至未来明朗!
普通小孩也要热爱生活!
public class Test {public static void main(String args[]) {int x, y;
x = 5 >>2;
y = x >>>2;
System.out.println(y);
}
}
A 0
B 2
C 5
D 80
public class foo {public static void main(String sgf[]) {StringBuffer a=new StringBuffer("A");
StringBuffer b=new StringBuffer("B");
operate(a,b);
System.out.println(a+"."+b);
}
static void operate(StringBuffer x,StringBuffer y) {x.append(y);
y=x;
}
}
A 代码可以编译运行,输出“AB.AB”。
B 代码可以编译运行,输出“A.A”。
C 代码可以编译运行,输出“AB.B”。
D 代码可以编译运行,输出“A.B”。
A this.A(x)
B this(x)
C super(x)
D A(x)
A int型
B 枚举类型
C 字符串
D 浮点型
//指出以下程序运行的结果是
public class Example{ String str=new String("good");
char[]ch={'a','b','c'};
public static void main(String args[]){ Example ex=new Example();
ex.change(ex.str,ex.ch);
System.out.print(ex.str+" and ");
System.out.print(ex.ch);
}
public void change(String str,char ch[]){ str="test ok";
ch[0]='g';
}
}
A good and abc
B good and gbc
C test ok and abc
D test ok and gbc
A finally是为确保一段代码不管是否捕获异常都会被执行的一段代码
B throws是用来声明一个成员方法可能抛出的各种非运行异常情况
C final用于可以声明属性和方法,分别表示属性的不可变及方法的不可继承
D throw是用来明确地抛出一个异常情况
统计回文
“回文串”是一个正读和反读都一样的字符串,比如“level”或者“noon”等等就是回文串。花花非常喜欢这种拥有对称美的回文串,生日的时候她得到两个礼物分别是字符串A和字符串B。现在她非常好奇有没有办法将字符串B插入字符串A使产生的字符串是一个回文串。你接受花花的请求,帮助她寻找有多少种插入办可以使新串是一个回文串。如果字符串B插入的位置不同就考虑为不一样的办法。
连续大和
一个数组有 N 个元素,求连续子数组的大和。
例如:[-1,2,1],和大的连续子数组为[2,1],其和为 3。
so:
① 5>>2, 5的二进制为 0000 0000 0000 0101 ,右移2位,即: 0000 0000 0000 0001( 高位补0)
② x>>>2, 即上面的结果,再右移2位,结果就成了 0000 0000 0000 0000,所以最终的结果是0。
故:选A
故:选C
this(参数)
;A. this.A(x);这是调用普通方法的写法
C. super(x);此时显示调用父类构造方法
D. A(x); 调用该类中的静态方法
故:选B
故:选D
故:选B
故:选ABD
① java中局部变量必须初始化,否则会报错!!(编译无法通过)
② 对引用变量的默认初始化均初始化为null。
① 标识符中可以包含:字母、数字以及 下划线和 $ 符号等等。
② 注意:标识符不能以数字开头,也不能是关键字,且严格区分大小写。
① 遍历str1,将str2 insert进入str1的每个位置,判断是否是回文,这里注意的是,判断回文的时候,直接将字符串逆置,看是否相同就好了。是就++count。
② 需要注意的是这里不能 str1.insert(i,str2),这样的话str1改变了,在进行下一次操作时就不再是原来的字符串了。所以每次使用str1重新给一个str作为临时变量,然后str.insert(i, str2),再判断是否回文。
③ 注意:这里临时变量str是要进行字符串插入拼接的,所以直接使用StringBuffer类型就行!其中的insert方法是自带的,第一个参数是插入的起始位置,第二个参数是要插入的字符串。
④ 最后是判断插入后的字符串是不是回文字符串,所以在进行逆置的时候不能直接逆置,不然后期在进行比较的时候原来的字符串就会丢失,此时就需要一个临时变量来进行逆置操作。(逆置方法reverse是StringBuffer自带的)
⑤ 判断两个字符串是否相等使用equals,但是要toString!!
2)代码:
import java.util.Scanner;
public class Main {public static void main(String[] args) {Scanner in = new Scanner(System.in);
String str1 = in.nextLine();
String str2 = in.nextLine();
// 开始进行回文判断
int count = palindrome(str1,str2);
System.out.println(count);
}
// 回文统计:
// 将str2插入str1的每一个位置(但是str1要有临时变量来代替)
private static int palindrome(String str1, String str2) {int count = 0;
int len = str1.length();
// 注意这里前后都可以取到:前后都可以插入!
for (int i = 0; i<= len; i++) {// 每一次遍历代表每一次插入不同的位置,也就是每次都要有最开始传入的str1
// 每插入一次就进行一次逆置+判断
StringBuffer str = new StringBuffer(str1);
// 然后进行插入
str.insert(i,str2);
// 逆置,但是不能直接逆置,因为直接逆置之后str本身会改变
// 后面在进行回文串判断时比较的就是str与逆置后的字符串,所以这里需要一个临时变量进行逆置操作!
StringBuffer tmp = new StringBuffer(str); // 注意这里创建方法,不是直接=str!
tmp.reverse();
// 进行回文判断:使用String判断!
if(str.toString().equals(tmp.toString())) {count++;
}
}
return count;
}
}
① 状态:dp[i] 就是以数组下标为 i 的数做为结尾的大子序列和,其代表的数组其实就是[0,i]这个范围内的元素。
②状态方程:max( dp[ i ] ) = getMax( max( dp[ i -1 ] ) + arr[ i ] ,arr[ i ] )
,其实意思就是:如果dp[i-1] +arr[i]< arr[i],那就是前面的数组元素和反而是拖累了后面的元素arr[i],此时就更新当前大值为arr[i] ;然后还要与此前记录的大值比较来确定最终的大值,一直到数组结束。
③ 初始值:arr[0],所以循环从arr[1]开始,并且有sum和max!!
2)代码:
import java.util.Scanner;
// 正确版本
public class Main {public static void main(String[] args) {Scanner in = new Scanner(System.in);
int n = in.nextInt();
int[] arr = new int[n];
for (int i = 0; i< n; i++) {arr[i] = in.nextInt();
}
// 开始进行练习子数组求max
int sum = arr[0];
int max = arr[0];
for (int i = 1; i< arr.length; i++) {// 更新sum的值,注意不是max,只有在比较厚才能确定max!
sum = getMax(sum+arr[i],arr[i]);
if(sum >= max) {// 大于等于都可以更新
max = sum;
}
}
System.out.println(max);
}
// 获取两个数中的较大值
private static int getMax(int i, int j) {return (i>j)? i:j;
}
}
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧
售后响应及时
7×24小时客服热线数据备份
更安全、更高效、更稳定价格公道精准
项目经理精准报价不弄虚作假合作无风险
重合同讲信誉,无效全额退款