java基础

一、.java源程序与编译型运行区别

二、对象和类

对象:对象是类的一个实例,有状态和行为。

类:类是一个模版,它描述了一类对象的状态和行为。

局部变量:在方法、构造方法或者语句块中定义的变量被称为局部变量。变量声明和初始化都是在方法中,方法结束后变量自动销毁。局部变量是在栈上分配的。

成员变量:成员变量是定义在类中,方法体之外的变量。这种变量是在创建对象的时候初始化。成员变量可以被类中的方法、构造方法和特定类的语句块访问。成员变量是在堆内存的。

类变量:声明在类中,方法体之外,但必须声明为static类型。类变量存在于方法区。

抽象类:抽象类不能用来实例化对象,声明抽象类的唯一目的是为了将来对该类进行扩充。一个类不能同时被abstract和final修饰。如果一个类中包含抽象方法,那么该类一定要声明为抽象类,否则编译出错。抽象类可以包含抽象方法和非抽象的方法。

抽象方法:抽象方法是一种没有任何实现的方法,该方法的具体实现由子类提供。抽象方法不能被不能为private,final或者static修饰。任何继承抽象类的子类必须实现父类的所有抽象方法,除非该子类也是抽象类。

总结:

1.引用类型总是被分配到“堆”上,不论是成员变量还是局部

2.基础类型总是分配到它所声明的地方:成员变量在堆内存里,局部变量在栈内存里。 


三、源文件的声明规则

1.一个源文件中只能有一个public类

2.一个源文件可以有多个非public类

3.源文件的名称应该和public类的类名保持一致

4.如果一个类定义在某个包中,那么package语句应该在源文件的首行

5.如果源文件包含import语句,那么应该放在package语句和类定义之间。如果没有package语句,那么import语句应该放在源文件的最前面

6.import语句和package语句对源文件中定义的所有类都有小。在同一源文件中,不能给不同的类不同的包声明。

四  、访问控制


五、关于StringBuffer和StringBuilder类

StringBuffer和StringBuilder类的对象能够被多次的修改,并且不产生新的未使用的对象。两者之间的区别在于:StringBuilder的方法不是线程安全的,不能同步访问,但StringBuilder相对与StringBuffer有速度优势。

六、构造方法

当一个对象被创建时,构造方法用来初始化该对象。构造方法和它所在类的名字相同,但是构造方法没有返回值。通常会使用构造方法给一个类的实例变量赋初值,或者执行其它必要的步骤来创建一个完整的对象。不管你定义与否,所有的类都有构造方法,因为java自动提供了一个默认的构造方法,它把所有成员初始化为0,一旦你定义了自己的构造方法,默认的构造方法就会失效。

七、文件流


获得一个输入流对象来读取文件:

1. 利用文件夹  InputStream f=new FileInputStream("c://test.txt");

2.文件对象    File f=new File("c://hello.txt");

InputStream out=new FileInputStream(f);

3.创建目录

string dirname="/tmp/user/java/bin";

File d=new File(dirname);

d.mkdir();//创建一个文件夹 返回ture/false

d.mkdirs();//创建一个文件夹和它的所有父文件夹。

4.读取目录

public class DirList {

    public static void main(String args[]) {

        String dirname = "/tmp";

        File f1 = new File(dirname);

        if (f1.isDirectory()) {

            System.out.println("目录 " + dirname);

            String s[] = f1.list();

            for (int i = 0; i < s.length; i++) {

                File f = new File(dirname + "/" + s[i]);

                if (f.isDirectory()) {

                    System.out.println(s[i] + " 是一个目录");

                } else {

                    System.out.println(s[i] + " 是一个文件");

                }

            }

        } else {

            System.out.println(dirname + " 不是一个目录");

        }

    }

}

5.删除目录java.io.File.delete()

需要注意的是当删除某一目录时,必须保证该目录下没有其他文件才能正确删除,否则将删除失败。

递归思想:

public class DeleteFileDemo {

    public static void main(String args[]) {

        // 这里修改为自己的测试目录

        File folder = new File("/tmp/java/");

        deleteFolder(folder);

    }

    // 删除文件及目录

    public static void deleteFolder(File folder) {

        File[] files = folder.listFiles();

        if (files != null) {

            for (File f : files) {

                if (f.isDirectory()) {

                    deleteFolder(f);

                } else {

                    f.delete();

                }

            }

        }

        folder.delete();

    }

}

八、异常处理

要理解Java异常处理是如何工作的,你需要掌握以下三种类型的异常:

    1.检查性异常:最具代表的检查性异常是用户错误或问题引起的异常,这是程序员无法预见的。例如要打开一个不存在文件时,一个异常就发生了,这些异常在编译时不能被简单地忽略。

   2. 运行时异常: 运行时异常是可能被程序员避免的异常。与检查性异常相反,运行时异常可以在编译时被忽略。

    3.错误: 错误不是异常,而是脱离程序员控制的问题。错误在代码中通常被忽略。例如,当栈溢出时,一个错误就发生了,它们在编译也检查不到的。


九、接口

接口,在java中是一个抽象类型,是抽象方法的集合,接口通常以interface开声明。

接口和类的相似点

1.一个接口可以有多个方法

2.接口文件保存在.java.结尾的文件中,文件名使用接口名

3.接口的字节码文件保存在class结尾的文件中

4.接口相应的字节码必须与包名称相匹配的目录结构中

接口与类的区别:

1.接口不能用于实例化

2.接口没有构造函数

3.接口的所有方法必须是抽象方法

4.接口不能包含成员变量,除了static和final变量

5.接口不是被类继承,而是要被类实现

6.接口支持多继承

接口有以下特性:

接口是隐式抽象的,当声明一个接口的时候,不必使用abstract关键字。

接口中每一个方法也是隐式抽象的,声明时同样不需要abstract关键字。

接口中的方法都是公有的。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 218,607评论 6 507
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,239评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,960评论 0 355
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,750评论 1 294
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,764评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,604评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,347评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,253评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,702评论 1 315
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,893评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,015评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,734评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,352评论 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,934评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,052评论 1 270
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,216评论 3 371
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,969评论 2 355

推荐阅读更多精彩内容