2、short s = 1; s = s + 1;有没有问题?如果有怎么解决?
short s = 1; s += 1;有没有问题?如果有怎么解决?
3、需求:
int a = 10;
int b = 20;
请用代码实现交换两个变量,
即结果为: a = 20; b = 10; (3种)
答案: int a = 1;
int b = 2;
int temp = a;
a = b;
b = temp;
System.out.println("a= "+a+", b= "+b);
System.out.println("--------------------------------");
int x = 1;
int y = 2;
x = x + y;
y = x - y;
x = x - y;
System.out.println("x= "+x+", y= "+y);
System.out.println("--------------------------------");
int i = 1;
int j = 2;
i = i ^ j;
j = i ^ j;
i = i ^ j;
System.out.println("i= "+i+", j= "+j);
System.out.println("--------------------------------");
class Demo2_Operator {
public static void main(String[] args) {
/*
* 位异或运算符的特点
b=b1+b2失败 数据类型不一样,必须强转作者: 窗外的雪儿飞 时间: 2015-8-29 21:26
看程序写结果:main方法是入口
第一题:
class Test
{
private static int x = 10;
public void show(int x)
{
x++;
System.out.println(x); //21
}
public static void main(String[] args)
{
int x = 20;
Test t = new Test();
t.show(x);
}
}
第二题:
class Fu{
public int num = 10;
public Fu(){
System.out.println("fu");
}
}
class Zi extends Fu{
public int num = 20;
public Zi(){
System.out.println("zi");
}
public void show(){
int num = 30;
System.out.println(num);
System.out.println(this.num);
System.out.println(super.num);
}
}
class Test {
public static void main(String[] args) {
Zi z = new Zi();
z.show();
}
}
fu
zi
30
20
10
第三题:(面试题)
class Fu {
static {
System.out.println("静态代码块Fu");
}
{
System.out.println("构造代码块Fu");
}
public Fu() {
System.out.println("构造方法Fu");
}
}
class Zi extends Fu {
static {
System.out.println("静态代码块Zi");
}
第四题:
class X {
Y b = new Y();
X() {
System.out.print("X");
}
}
class Y {
Y() {
System.out.print("Y");
}
}
public class Z extends X {
Y y = new Y();
Z() {
System.out.print("Z");
}
public static void main(String[] args) {
new Z(); //yxyz
}
}
铺垫的小知识:
第一个:成员变量有基本类型和引用类型的。
class Demo {
//基本类型
int x = 10;
//引用类型
Student s = new Student();
}
第五题:
class X {
Y b = new Y();
X() {
System.out.print("X");
}
}
class Y {
Y() {
System.out.print("Y");
}
}
public class Z extends X {
Y y = new Y();
Z() {
//super(); 内存中的做法,就是分层初始化,不会因为这里的super改变。
//super在这里仅仅表示要先初始化父类数据。
System.out.print("Z");
}
public static void main(String[] args) {
new Z();
}
}作者: 窗外的雪儿飞 时间: 2015-8-29 21:29
集合类:请用LinkedList模拟栈数据结构的集合,并测试。
思路:首先定义自己的栈集合,底层用LinkedList类实现。
1、自定义栈集合
import java.util.LinkedList;
public class MyStack {
private LinkedList link;
public MyStack() {
link = new LinkedList();
}
public void add(Object obj) {
link.addFirst(obj);
}
public Object get() {
return link.removeFirst();
}
public boolean isEmpty() {
return link.isEmpty();
}
}
2、测试
public class MyStackDemo {
public static void main(String[] args) {
MyStack my = new MyStack();
my.add("hello");
my.add("world");
my.add("java");
while (!my.isEmpty()) {
System.out.println(my.get());
}
}
} 作者: 窗外的雪儿飞 时间: 2015-9-12 00:42 本帖最后由 窗外的雪儿飞 于 2015-9-12 11:32 编辑
Q: 用迭代器遍历集合的时候,用集合修改集合有没有问题?如果有,怎么解决?
A:有,会出现ConcurrentModificationException:并发修改异常。
出现的原因:迭代器是依赖于集合而存在的。我们在通过迭代器迭代的过程中,用集合往集合中添加了元素,而并没有重新获取迭代器,所以会报错。
解决方案:
A:用集合本身遍历集合,用集合去修改集合。 集合实现,元素添加到末尾。
B:用迭代器迭代,用迭代器修改元素。 迭代器实现,遍历到哪里,添加到哪里。
代码体现:(PS:只是简单的代码而已,复杂的不演示)
public class ListIteratorDemo {
public static void main(String[] args) {
List list = new ArrayList();
list.add("a");
list.add("b");
list.add("c");
//1、用集合实现
for (int x = 0; x < list.size(); x++) {
String s = (String) list.get(x);
if ("b".equals(s)) {
list.add("d");
}
}
//2、 用迭代器实现
ListIterator lit = list.listIterator();
while (lit.hasNext()) {
String s = (String) lit.next();
if (list.contains("b")) {
lit.add("d");
}
}
System.out.println("list:" + list);
}
} 作者: ZZBY 时间: 2015-9-12 00:45
是进入就业班的考试题吗作者: chunjiang 时间: 2015-9-12 02:02
给力,赞 作者: Java_EE 时间: 2015-9-12 07:52
谢谢楼主的分享