安卓基础知识整理

1.//HelloWorld.java //存储在项目的src目录

  //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.




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值