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操作失败");
}
网友评论