周文佳语强化班

Java问题小结

2018-12-09  本文已影响23人  每天好鑫晴

1.构造方法和普通方法的区别

(1)构造方法的名字必须与定义他的类名完全相同,没有返回值类型,而且没有void,

(2)类中必定有构造方法,如果不写,系统自动添加无参构造方法,接口不允许被实例化,故接口中没有构造方法

(3)不能被static、final、synchronized、abstract和native修饰

(4)构造方法在初始化对象的时候自动调用,一般不能显式的直接调用

当同一个类存在多个构造方法的时候,Java编译系统会自动按照初始化时

最后面括号的参数个数以及参数类型来自动一一对应。完成构造函数的调用

(5)构造方法分为两种:无参构造和有参构造

(6)构造方法可以被重载。没有参数的构造方法为默认构造方法,与一般的方法一样,构造方法可以进行任何活动,但是经常将他设计为进行各种初始化活动

3.return ,break, continue的区别是什么

return跳出整个方法体

break结束整个循环

continue结束当次循环

答:http://www.cnblogs.com/yanenshen/p/4230262.html

4.绝对路径和相对路径的区别

绝对路径是在硬盘上相对的储存位置

相对路径是相当于某个文件夹的储存位置

5.接口和适配器

适配器继承接口,如果用接口的话,需要重写里面的所有方法,如果是适配器,就可以需要哪个重写哪个

7.线程的几种实现方式

1.通过继承Thread类实现一个线程

[java] view plain copy

public class java_thread extends Thread{  

    public static void main(String args[])  

    {  

        (new java_thread()).start();  

        System.out.println("main thread run ");  

    }  

    public synchronized  void run()  

    {  

        System.out.println("sub thread run ");  

    }  

2.通过实现Runnable接口实现一个线程

public class java_thread implements Runnable{  

    public static void main(String args[])  

    {  

        (new Thread(new java_thread())).start();  

        System.out.println("main thread run ");  

    }  

    public void run()  

    {  

        System.out.println("sub thread run ");  

    }  

}  

3.直接在函数体中使用

void java_thread()  

{  

     Thread t = new Thread(new Runnable(){  

            public void run(){  

            mSoundPoolMap.put(index, mSoundPool.load(filePath, index));  

            getThis().LoadMediaComplete();  

            }});  

        t.start();  

线程开启的方式,有start和调用线程 里面的run()方法

8.匿名调用和静态调用

匿名调用:new 类名();

静态调用:有Static,

10.ArrayList 和List 的区别

ListArray继承并实现了List

所以List不能被构造,ListArray可以被构造

List list =new List();//是错误用法

List list = new Array

而ArrayList list=new ArrayList();创建一对象则保留了ArrayList的所有属性

11.随机数方法

random本身的范围是[0,1)

12.内部类和匿名内部类

14.i++和++i

i++先执行i的运算后++,即先运算后赋值

++i为先赋值,后执行关于i的运算

15.双if语句和if else语句之间的区别

    双if语句每个都要判断,相互之间没有影响

    if    else if 语句中if 和else if之间是有联系的,当不满足if中的条件

    的时候,就去执行else if,如果if中的条件已经满足了,就不会再去判断else if中的条件了

16.设置一个关闭提醒

17.主方法括号里面的东西是什么意思

声明一个字符型的数组

18.权限修饰符

权限修饰符有四个,权限由高到低依次是public 、protect、default、private

  访问权限   类   包  子类  其他包

    public     ∨   ∨   ∨     ∨

    protect    ∨   ∨   ∨     ×

    default    ∨   ∨   ×     ×

    private    ∨   ×   ×     ×

19.实现监听的几种方式

1.匿名监听

public Button login;

@Override

    login =(Button)findViewById(R.id.bt1);

    //匿名监听

    login.setOnClickListener(new View.OnClickListener() {

        @Override

        public void onClick(View v) {

            Toast.makeText(LoginActivity.this, "这是", Toast.LENGTH_SHORT).show();

        }

    });

2.本类监听

继承View.OnClickListener接口、实现View.OnClickListener中的SetOnClickListener

3.布局监听

实例:重写功能

android:onClick=”reSet”

JAVA中写

public void reSet(View v){

    user.setText("");

    pwd.setText("");

}

4.内部类实现监听

public Button exit;

exit=(Button)findViewById(R.id.bt4);

exit.setOnClickListener(new Bt4_clicklisn());

public  class  Bt4_clicklisn implements View.OnClickListener{

    @Override

    public void onClick(View v) {

        finish();

    }

}

原文:https://blog.csdn.net/woainijinying/article/details/52081295

20.重载和重写

方法重载是指同一个类中的多个方法具有相同的名字,但这些方法具有不同的参数列表,即参数的数量或者是参数类型不能完全相同

方法重写是存在于子父类之间的,子类定义的方法与父类中的方法具有相同的方法名字,相同的参数表和相同的返回类型

注意:子类中不能重写父类里面的final方法

子类中必须重写父类中的abstract方法

21.JOptionPane的使用

22.this的两个作用

调用当前对象

作为参数返回

(1)可以用this调用另一个构造器,但是却不能调用两个;

  (2)必须将构造器的调用放在方法的起始处,否则编译器会报错。

23.返回值

古月金帛三寿,想知道上海的某件事情,他会问溫家宝,溫家宝会问俞正声,俞正声问手下人,手下人把结果告诉俞正声,俞正声把结果告诉溫家宝,溫家宝把结果告诉古月金帛三寿。(网上找的这段文字十分精辟啊)

void hu() {

  System.out.println(wen());

}

String wen() {

  return yu();

}

String yu() {

  return shouxiaren();

}

String shouxiaren() {

  return "hello";

}

24.equals和==的区别

 1)对于==,如果作用于基本数据类型的变量,则直接比较其存储的 “值”是否相等;

    如果作用于引用类型的变量,则比较的是所指向的对象的地址

 2)对于equals方法,注意:equals方法不能作用于基本数据类型的变量

    如果没有对equals方法进行重写,则比较的是引用类型的变量所指向的对象的地址;

    诸如String、Date等类对equals方法进行了重写的话,比较的是所指向的对象的内容。

25.转义符的使用

\f换行

\b退格

\n换行

\r回车

\t横向跳格

\\反斜线字符,输出一个反斜杠

\'单引号字符,输出一个单引号

\"双引号字符

\uxxxx1~4位十六进制(XXXX)所表示的unicude字符

\ddd1~3位八进制(ddd)所表示的unicude字符,范围在八进制的000~377之间

26.Java中的默认布局,局部管理

AWT提供了5种布局管理器类:

FlowLayout(流式布局管理器)、BorderLayout(边界式布局管理器)、GridLayout(网格式布局管理器)、GirdBagLayout(网格包布局管理器)、CardLayout(卡片式布局管理器)

1.FlowLayout(流式布局管理器)是Panel类的布局管理器

该布局管理器对组件逐行定位,行内从左到右,一行排满后换行。可以设定不同的间距以及对齐方式

默认的对齐方式是居中。

2.BorderLayout(边界式布局管理器)是Frame类的默认布局管理器,BorderLayout将整个容器的布局划分成

东(EAST)西(WEST)南(SOUTH)北(NORTH)中(CENTER)

如果不指定组件的 加入部位,则默认加入到CENTER区

每个区域只能加入一个组件,如果加入多个,则先加入的会被覆盖

3.GridLayout布局管理器将空间划分成规则的 矩形网格,每个单元格 区域大小相等。组件被添加到每个单元格中,先从左到右布满一行后换行,再从上到下

在GridLayout构造方法中指定分割的行数和列数

如果想在 Frame想加入 Panel的布局,那么需要首先将Frame的布局方式清空

  布局管理器的总结:Frame是一个顶级窗口,Frame的缺省布局管理器为BorderLayout。所以如果直接往Frame里面放一个Panel,他将会把Panel放大居中。如果用户需要亲自设置组件大小或位置,则应取消容器的布局管理器,方法为 setLayout(null);

27.抛出异常

方式一:

throws,抛出具体代码中的异常,这种方式编译器都会提示,举例:

public static void main(String[] args) throws IOException

方式二:try{}catch{}抛出异常

在try中放入待执行代码,如果程序正常运行就会执行try中的代码,如果出现异常,就会执行catch中的代码,当然,try后面可以跟多个catch,举例:

                try {

                    br.close();

                } catch (IOException e2) {

                    System.out.println("用户释放资源失败");

                }  ..

注意:父类没有抛出异常,子类是不能抛出异常的

try catch抛出异常的时候,异常范围小的放在前面,异常范围大的放在后面

        try{

                  //待执行的代码        } catch (FileNotFoundException e) {

            System.out.println("找不到文件");

        } catch (IOException e) {

            System.out.println("IO操作失败");

        }   

上一篇下一篇

猜你喜欢

热点阅读