//HelloWorld.class //存储在项目的bin目录
class HelloWorld3{} /生成/HelloWorld3.class,HelloWorld3.class存储在项目的bin目录
2. //syso,然后快捷键 “alt+/ ”
//快速运行:cltrl+f11
3. byte n1=5;
//00000101(原码,补码)
//11111010(负数,原码)
//10000101(反码)
//10000110(补码)
System.out.println(~n1);//-6
byte n2=-5;
//10000101(原码)
//11111010(反码)
//11111011(补码)
//00000100(位非)
System.out.println(~n2); //4
byte n2=-5;
//10000101(原码)
//11111010(反码)
//11111011(补码)
//11101100(移位以后的原码)
//10010011(反码)
//10010100(补码)
System.out.println(n2<<2);//-20
4.
for(int i=1;i<=10;i++){
if(i==5)break;//直接退出当前循环,即当i=5时,退出for循环
System.out.println("hello"+i);//输出:1,2,3,4
}
for(int i=1;i<=10;i++){
if(i==5)continue;//跳过本次循环,而执行下一次循环,即当i==5,跳出i=5的循环,执行i=6的循环
System.out.println("hello"+i);//输出1,2,3,4,6,7,8,9,10
}
bt:for(int i=1;i<=10;i++){
for(int j=1;j<=5;j++){
//if(j==3)break bt;
if(j==3)continue bt;//j==3时,退出j==3的循环,执行标号bt,即执行i++,i++后i由变成2,
System.out.print(i+"-->"+j+"\t");//1-->11-->22-->12-->23-->13-->24-->14-->25-->15-->26-->16-->27-->17-->28-->18-->29-->19-->210-->110-->2
}
bt:for(int i=1;i<=10;i++){
for(int j=1;j<=5;j++){
if(j==3)break bt;//j==3,退出bt 标号
//if(j==3)continue bt;
System.out.print(i+"-->"+j+"\t");//1-->11-->2
}
5.
public static void main(String[] args) {
int[] n=new int[5];
System.out.println(n);//[I@15db9742
n[0]=50;n[1]=60;
n[2]=70;n[3]=80;n[4]=90;
change(n); //将n指向的数组的地址[I@15db9742传给change方法
System.out.println(n[2]);//100
}
public static void change(int a[]){ //change方法的数组a地址是n数组传过来的地址
a[2]=100;
}
6.
class C{
public void show(){
System.out.println("C.show()");
}
}
class A{
/**实例变量*/
int m,n;
/**类变量(被所有对象共享)*/
static int a;
static int b;
{
a=20;
m=50;
System.out.println("实例代码块");
}//实例代码块
static{//(类A加载时执行,此时a=10,之后创建了对象,初始化属性,执行实例和构造方法,重新给a赋值,a=20)
a=10;
//m=20;错误
}//静态代码块(类加载时执行)
static A aa=new A();
static C cc=new C();
//A(){cc.show();}//有空指针异常
//public static void display(){}
}
/**静态代码块只在类加载的时候才会运行一次,之后使用该类时不会在运行。
* 因为是先加载类才能创建实例的,所以当第一次使用类创建实例时,会先运行静态代码块。
* 如果该类的父类中有静态代码块,则会先运行父类的静态代码块。
* 如果之前已经加载了子类,则再加载父类时不再单独运行父类中的静态代码块。记住, 静态代码块只运行一次 */
public class StaticDemo01 {
public static void main(String[] args) {
System.out.println(A.a);
//A.display();
System.out.println(new A().a);
}
}
输出结果为:
实例代码块
20
实例代码块
20
7.
/**多态
* 多态性是面向对象编程的一种特性,和方法无关,
简单说,就是同样的一个方法能够根据输入数据的不同,做出不同的处理,即方法的
重载——有不同的参数列表(静态多态性)
而当子类继承自父类的相同方法,输入数据一样,但要做出有别于父类的响应时,你就要覆盖父类方法,
即在子类中重写该方法——相同参数,不同实现(动态多态性)*/
1)class A{
public void show(){
System.out.println("A.show()");
}
}
class B extends A{
@Override
public void show() {
System.out.println("B.show()");
}
}
public class OOPDemo01 {
public static void main(String[] args) {
//编译时看类型,运行时看对象
A a=new B();
a.show();//B.show()???????
/**当子类继承自父类的相同方法,输入数据一样,但要做出有别于父类的响应时,
* 你就要覆盖父类方法,即在子类中重写该方法
* ——相同参数,不同实现(动态多态性)*/
2)
class A{
public void show(){
System.out.println("A.show()");
}
}
class B extends A{
//这里没有重写,即没有override
public void show() {
System.out.println("B.show()");
}
}
public class OOPDemo01 {
public static void main(String[] args) {
//编译时看类型,运行时看对象
A a=new B();
a.show();//B.show() ??????
}
3)只能这么理解了:a为A1 类型,类A1加载时执行静态代码块,即输出A1.show
class A1{
static void show(){
System.out.println("A1.show()");
}
}
class B extends A1{
static void show(){
System.out.println("B.show()");
}
}
public class StaticDemo02 {
public static void main(String[] args) {
A1 a=new B();
a.show();//"A1.show()",???????
}
}
7.关于静态变量,静态代码块,实例变量,实例代码块,构造函数的执行顺序的总结
/**大体上顺序是这样的:(也可以说是优先级,同一级的按顺序执行)
1 静态变量,静态代码块
2 构造函数
3 实例变量,实例代码块
*/public class Example02 {
int a;//实例变量
{//此代码块在构建对象时执行
a=30;
} //实例代码块
/**静态变量 类加载的时候就初始化了*/
static int b;//类变量/静态变量
static { //静态代码块
b=50;
}
{//实例代码块,构建对象时执行
b=40;
}
public static void main(String[] args) {
int c;
System.out.println(Example02.b);//50
c=new Example02().a;//构建对象,执行实例变量和实例代码块,所以a=30,b=40
System.out.println(c);//30
System.out.println(Example02.b); //40
//==================
Example02 e1=new Example02();//构建对象,执行实例变量和实例代码块,所以a=30,b=40
System.out.println(e1.a);//e1.a=30
e1.b=e1.a;
Example02 e2=new Example02();//构建对象,执行实例变量和实例代码块,所以a=30,b=40
System.out.println(e2.b); //40
}
}
8.
//convertView是当前页面在显示的一个item项,当该list项滑出时,item给下一项
//使用这个对象相当于排序时使用一个中间变量,可以减少convertView的新建次数
class ViewHolder{
ImageView photoIv;
TextView nameTv;
TextView phoneTv;
TextView signTv;
}
9.