《JAVA2实用教程第六版》笔记

前言:这些笔记只对笔者查缺补漏过程的知识进行记录,不对书上知识进行总结,仅仅供笔者学习、复习使用。

第一章 JAVA入门

基础操作:

        编译为字节码:javac -encoding utf-8 main.java ——>得到编码兼容中文的main.class

        运行:java main (不能带文件后缀、不能用xxx/xxx/main)

        反编译:javap main (相关操作帮助javap -help)

知识点:

  • 一个源文件最多有一个public类,如果有,则源文件名与public类同名
  • 一个源文件无public类则源文件与任意文件同名即可
  • 主类:public static voidc main(String args[]) 所在的类即为主类

小结:Java通过将源代码code.java文件编译为字节码文件code.class,然后通过jre在不同操作系统上得以运行,做到一次代码书写,任意系统运行。


第二章 基础数据类型

基础操作:

        数据输入:

Scanner reader = new Scanner (System.in);
int a = reader.next();
...

           格式化输出:

                与c语言同义的%d,%c,%f,%s以及占位md%(占m位),m.nf(共m位,保留n位小数)等等    

知识点:

基础数据类型
类型所占字节 Byte
int4
byte1
short2
long8
char 2
float4
double8
  • 12.4默认为double类型,需要显式指定float 12.4F/f 或(float)12.4

第三章 运算符、表达式和语句

知识点:

  •         instanceof 运算符可以返回一个布尔值,计算左面的对象是否是右面的类或子类对象
  •         对byte进行数字运算过程中byte会被转为int,得到int结果,需要将结果转换为byte再赋值

第四章 类与对象

知识点:

  •         当调用方法对对象A内的某个对象成员变量B赋值时,赋予的是该传入对象C的引用,而不是拷贝对象,所以在赋值后调用A内方法对B进行改变时,C也随之改变。
  •         可变参数:在方法形参声明public void f(int a,double ... b);表示有一个int参数,未知个数个double参数,取值采用b[0],b[1]...,通过.b.length()获取参数个数。
  •         关联关系:A类内的成员变量有类B,则A关联于B类。       
  •         依赖关系:A类中方法形参列表或返回值内有含B类,则A类依赖于B类。
  •         public于protect区别:protect修饰的方法和变量只能被同一包内的其他类对象访问。
  •         不被public、protect、private修饰的成为友好对象,访问权限与protect一致,但友好变量/方法无法被继承,在java中protect被继承后仍然是protect属性。
  •         在JDK10之后,增加自动变量类型 var,但需要在声明时就进行实例化(var a = 1)。
class A{
    int n;
}

class B extend A{
    int n;
    public ... say(){
        ...printf(n);
    }
}

... main(){
    A a = new B();
    a.n = 10; // 此时是给A的n变量赋值
    ....printf(a.n); //输出 10
    a.asy(); // 输出0
}

jar文件

  •         生成jar需要:

                所有的xxx.class文件

                清单文件xxx.mf

  •         清单文件xxx.mf内容               
Mainfest-Version: 1.0

Class: 完整包名.类名

Created-By: 14

//注意所有冒号后需要有一个空格分隔开
  • 使用以下指令生成jar文件        
jar cfm xxx.jar xxx.mf 所有的class文件的相对路径
  • 使用jar文件:

        在代码中加入:

improt 包名.类名
  • 编译.java时使用以下指令编译:
javac -cp .;xxx.jar 需要编译的java文件

        如果jar文件不在同一文件夹则必须使用jar文件的绝对路径。

  • 编译后运行使用:
java -cp xxx.jar;包名.主类

第五章 子类与继承

知识点:

  •         UML图
class People{
        int age;
        void haha(){
            
        }
    }
    class Student extends People{
        int grade;
        void backHome(){}
        
    }

               对应的UML图

  • 拓展:

类依赖在第六章有样例图,此处不再重复。

  •         对于继承protect类的子类D的访问权限:访问D本身的的只需要跟D在同一包内,访问继承的则需要与需要访问的方法或变量的祖先类在同一包内。
  •         上转型对象:即使用父类引用指向子类对象,调用子类函数实现多态(跟c++虚函数差不多)。
  •         抽象类,接口,普通类关系图:

        

  •         子类继承的方法只能操作继承的方法和变量(重写后可以操作自己的和继承的)
  •         类关联和类依赖:关联是拥有,依赖是使用(如形参表中有相关变量)。

第六章 接口与实现

知识点:

  •         接口类中允许有常量和抽象方法。在JAVA8后允许给抽象方法定义默认函数体,需要在函数返回值声明前加上关键词default,同时也允许有static方法;JAVA9后允许有private方法用于给default方法调用。 默认接口所有方法为public权限。
  •         实现接口时:抽象类可以实现任意多个,而非抽象类要求全部实现。实现时需要显式定义为public权限,否则相当于从public->友好,属于权限降级,不被允许。
  •         接口UML图:

        

  •         接口回调:类似于父类变量指向子类对象调用子类函数,只不过这里的父类变量是接口变量并且只能调用被实现的抽象方法。
  •         单接口(函数接口):只有一个抽象方法的接口类
  •         函数接口可以使用Lambda表达式快速继承实现:

public interface Math{
    public abstract int add(int a,int b);
}

//对于 Math类,可以直接这样创建一个对象
Math cacul = (a,b)->{
        return a+b;
    };
int result = cacul.add(1,2); //result = 3
  •         接口多态:利用接口回调这个特性把不同子类对象赋值给接口变量实现调用不同子类实现的方法。
  •         接口参数:当一个函数的形参表里有接口时,可以传一个 实现了此接口的类 的对象 过去,如果这个接口是函数接口,可以只传一个Lambda函数过去。
//预设有一个接口
interface Hello{
    void say(int a);
}


//预设一个函数
void sayWhat(Hello hello){
    hello.say(123);
}

//主函数中调用sayWhat()可以直接传Lambda函数
public ... main(){

    sayWhat((int n){System.out.println("say:"+n)}) //执行结果:say:123
} 
  •         判断是使用接口还是抽象类:只需要继承方法则使用接口,需要继承变量属性则抽象类(接口也可以有常量,但无法继承)。

第七章 内部类与异常类

知识点:

  • 可以使用private、protect修饰内部类,但内部类只供它的外嵌类使用,所以意义不大。
  • 内部类可以是static类型,static内部类无法操作外嵌类的实例成员变量。
  • 匿名类体中不能声明static成员和方法,也不能是抽象类,但可以是finally类。
  • 匿名类:可以通过如下方法继承一个类,并重写、创建、继承父类函数等等。也可以直接实现一个接口,得到这个匿名类的对象。
public class A{
    A(100){};
    public void say (){
        //aaaCode;
    };
    public void rap (){
        //rapCode;
    };
}
-------------------------------------------------------
... main(){
    A a = new A(100){
        public void say(){
            //bbbCode;
        }
    }
    
    a.rap(); //执行rapCode
    a.say(); //执行bbbCode
}
  • 当一个参数是接口函数时,可以用Lambda函数替代匿名对象
interface F{
    public void say();
}
class A{
    void aSay(F f){
        f.say();
    }
}

------------------------------------------------------
... main(){
    A a = new A(){
        ()->{
            Sys...printf("hello"); 
        }
    }
    a.say(); //hello
    A aa = new A(){
        ()->{
            Sys...printf("aahello"); 
        }
    }
    aa.say(); //aahello
}
  • 断言关键字 assert  可以在执行时遇到错误立即停止,而非抛出异常。
assert True; //程序继续执行
int a = 1;
assert (a == 1); //程序继续执行
assert False; //程序停止执行
//如果使用下面这条断言,那么停止后还会抛出MyException异常
assert False:MyExeption
  • 在try-catch-finally中,执行return后finally仍然会执行。在执行System.exit(0)后finally不执行。 
  • 使用throw抛出异常,使用throws在函数声明处声明可能产生的异常。

第八章 常用实用类

知识点:

        正则表达式:

符号意义
.任意一个字符
\.一个'.'字符
\\D任意非数字
\\d任意数字
\\s任意非空格
\\S任意空格
\\w任意可标识符字符
\\W任意不可作标识符字符
\\p{Lower}小写字母a-z
\\p{Upper}大写字母A-Z
\\p{ASCII}ASCII码字符
......

  • 13
    点赞
  • 88
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java2实用教程 rar 第1章Java入门 1 1Java的诞生 1 2Java的特点 1 3安装Sun公司的SDK 1 4一个Java程序的开发过程 1 5一个简单的Java应用程序的开发过程 1 6一个简单的Java小应用程序 1 7什么是JSP 习题 第2章标识符 关键字和数据类型 2 1标识符和关键字 2 2Java的基本数据类型 2 3Java的数组 习题 第3章运算符 表达式和语句 3 1运算符与表达式 3 2语句概述 3 3控制语句 3 4 循环语句 3 5break和continue语句 习题 第4章类 对象和接口 4 1编程语言的几个发展阶段 4 1 1机器语言 4 1 2过程语言 4 1 3面向对象编程 4 2类 4 2 1类声明 4 2 2类体 4 2 3成员变量和局部变量 4 2 4方法 4 2 5方法重载 4 2 6构造方法 4 2 7类方法和实例方法 4 2 8值得注意的问题 4 3对象 4 3 1创建对象 4 3 2使用对象 4 3 3于象的引用和实体 4 3 4参数传值 4 4static关键字 4 4 1实例变量和类变量的区别 4 4 2实例方法和类方法的区别 4 5this关键字 4 6包 4 6 1包语句 4 6 2import语句 4 6 3将类打包 4 7访问权限 4 7 1私有变量和私有方法 4 7 2共有变量和共有方法 4 7 3友好变量和友好方法 4 7 4受保护的成员变量和方法 4 7 5public类与友好类 4 8类的继承 4 8 1子类 4 8 2子类的继承性 4 8 3成员变量的隐藏和方法的重写 4 8 4final关键字 4 9对象的上转型对象 4 10多态性 4 11abstract类和abstract方法 4 12super关键字 4 13接口 4 13 1接口的声明与使用 4 13 2理解接口 4 13 3接口回调 4 13 4接口做参数 4 14内部类 4 15匿名类 4 15 1和类有关的匿名类 4 15 2和接口有关的匿名类 4 16异常类 4 16 1try catch语句 4 16 2自定义异常类 4 17Class类 4 17 1获取类的有关信息 4 17 2使用Class实例化一个对象 4 18基本类型的类包装 4 18 1Double类和Float类 4 18 2Byte Integer Short 工 ong类 4 18 3Character类 4 19反编译和文档生成器 4 20JAR文件 4 20 1将应用程序压缩为JAR文件 4 20 2将类压缩成JAR文件 4 20 3更新 查看JAR文件 习题 第5章字符串 5 1字符串 5 2字符串的常用方法 5 3字符串与基本数据的相互转化 5 4对象的字符串表示 5 5StringTokenizer类 5 6字符串与字符 字节数组 5 7StringBuffer类 5 8正则表达式 习题 第6章时间 日期和数字 6 1Date类 6 2Calendar类 6 3Math类 6 4BigInteger类 习题 第7章AWT组件及事件处理 7 1Java窗口 7 1 1 Frame常用方法 7 1 2菜单条 菜单 菜单项 7 1 3窗口与屏幕 7 2文本框 7 2 1TextField类的主要方法 7 2 2文本框上的ActionEvent事件 7 3内部类实例做监视器 7 4按钮与标签 7 4 1标签组件 7 4 2按钮组件 7 5菜单项 7 6文本区 7 6 1TextArea类主要方法 7 6 2文本区上的TextEvent事件 7 7面板 7 7 1Panel类 7 7 2ScrollPane类 7 8布局 7 8 1FlowLayout布局 7 8 2BorderLayout布局 7 8 3CardLayout布局 7 8 4GridLayout布局 7 8 5BoxLayout布局 7 8 6null布局 7 9画布 7 10选择型组件 7 10 1选择框 7 10 2下拉列表 7 10 3滚动列表 7 11Component类的常用方法 7 12窗口事件 7 13鼠标事件 7 14焦点事件 7 15键盘事件 7 16使用剪贴板 7 17打印 7 18综合实例 习题 第8章建立对话框 8 1Dialog类 8 2文件对话框 8 3消息对话框 8 4确认对话框 8 5颜色对话框 习题 第9章Java多线程机制 9 1Java中的线程 9 2Thread类的子类创建线程 9 3使用Runnable接口 9 4线程的常用方法 9 5GUI线程 9 6线程同步 9 7在同步方法中使用wait notif 和nodf3 All 方法 9 8挂起 恢复和终止线程 9 9计时器线程Timer 9 10线程联合 9 11守护线程 习题 第10章输入输出流 10 1File类 10 2FileInputStream类 10 3FileOutputStream类 10 4FileReader类和FileWriter类 10 5使用文件对话框打开和保存文件 10 6RandornAccessFile类 10 7数据流 10 8数组流 10 9对象流 10 10序列化与对象克隆 10 11文件锁FileLock 10 12Process类中的流 10 13带进度条的输入流 习题 第11章Java网络的基本知识 11 1使用URL 11 2读取URL中的资源 11 3显示URL资源中的HTML文件 11 4处理超链接 11 5InetAdress类 11 6套接字 11 7网络中的数据压缩与传输 11 8UDP数据报 11 9广播数据报 习题 第12章JavaApplet基础 12 1JavaApplet的运行原理 12 2网页向JavaApplet传值 12 3JavaApplet扣使用URL 12 4JavaApplet中建立新线程 12 5JavaApplet中使用套接字 习题 第13章常见数据结构的Java实现 13 1链表 13 2栈 13 3树集 13 4树映射 13 5散列集 13 6散列表 13 7向量 习题 第14章图形与图像 14 1绘制文本 14 2绘制基本图形 14 3建立字体 14 4清除 14 5Java2D 14 6图形的布尔运算 14 7绘制钟表 14 8绘制图像 14 9制作JPG图像 14 10XOR绘图模式 14 11打印图形 图像 习题 第15章Java数据库连接 JDBC 15 1创建数据源 15 2JDBC ODBC桥接器 l5 3顺序查询 15 4可滚动结果集 15 5排序查询 15 6模糊查询 15 7随机查询 15 8更新 添加 删除记录 l5 9预处理语句 15 10数据库访问中的套接字技术 习题 第16章Java与多媒体 16 1在小程序中播放音频 16 2在另一个线程中创建音频对象 16 3在应用程序中播放音频 16 4Java媒体框架 JMF 习题 第17章JavaSwing基础 17 1几个重要的类 17 2中间容器 17 3各种组件 习题">Java2实用教程 rar 第1章Java入门 1 1Java的诞生 1 2Java的特点 1 3安装Sun公司的SDK 1 4一个Java程序的开发过程 1 5一个简单的Java应用程序的开发过程 1 6一个简单的Java小应用程序 1 7什么是JSP 习题 第2章标识符 关键字和数据类型 2 1标识 [更多]
### 回答1: 很抱歉,我是一名AI语言模型,无法提供笔记。但是,我可以为您提供一些学习C++的建议: 1. 先学习C语言的基础知识,包括数据类型、变量、运算符、流程控制语句等。 2. 学习C++的面向对象编程思想,包括类、对象、继承、多态等。 3. 学习C++的标准库,包括STL容器、算法、迭代器等。 4. 多做练习,通过实践来加深对C++的理解和掌握。 5. 参考优秀的C++书籍和资料,如《C++ Primer》、《Effective C++》等。 希望对您有所帮助! ### 回答2: "C Primer Plus"是一本经典的C语言程序设计教材,旨在帮助初学者从零开始学习和掌握C语言。该书涵盖了C语言的基础知识、控制语句、数组、函数、指针、字符串、结构体和文件操作等方面的知识,适合作为初学者的入门教材和进一步深入学习的指导。 本书的教学内容分为18个章节,每一章节都有详尽的讲解和众多实例,适合读者带着问题闲逛和学习。该书在讲解C语言基础的同时,也着重介绍了一些关键的编程概念,如模块化、数据类型和逻辑控制等,这让读者不仅能学好C语言,也可以更好地理解编程思维。 此外,本书的末尾还包含了一些互动实践和高级主题内容,这些主题包括指针的高级用法、内存分配、预处理器、多线程和异常处理等,这有助于读者进一步加深对C语言的理解,提升自己的编程能力。 总之,《C Primer Plus》是适合任何一个对C语言感兴趣的读者阅读的书。不论您是初学者,还是已经有一定经验的开发者,这本书都是非常好的参考材料,可以为您的C语言学习和应用提供强有力的支持。 ### 回答3: C++ Primer Plus是一本广受欢迎的C++程序设计入门教材,已经出到了第六版。本书主要介绍了C++的基础知识、面向对象编程、模板、STL等内容,非常适合初学C++的人学习。下面就来说一下我对这本书的看法和笔记。 首先,本书的结构清晰,适合初学者学习。书中从基础语法、流控制、函数、数组、字符串等开始介绍,然后逐步深入介绍指针、动态内存分配、结构体、文件输入输出等高级内容。最后,还介绍了C++的面向对象编程、异常处理、模板和STL等知识。这样的一个结构非常有利于初学者分类学习和自我提高。 其次,本书的编排和内容紧密相连,循序渐进,易于理解。作者通过示例程序、代码分析、模块划分、练习题等方式,让读者逐步掌握基础知识和解决实际问题的能力,同时保证了编程风格的一致性和代码的可读性。此外,书中还介绍了一些实用的编程技巧,比如如何调试程序、如何提高程序执行效率等,帮助读者逐步提高自己的编程水平。 最后,本书是一本理论与实践结合的教材。作者在介绍理论知识的同时,还介绍了很多实际操作,如如何使用IDE、如何使用命令行、如何在不同操作系统上编译和运行程序等。这些实际操作内容对初学者而言是非常有用的,有助于让读者对C++的使用更加熟练。 总的来说,C++ Primer Plus是一本非常优秀的C++入门教材,编写精准、内容实用、适合初学者学习。在学习过程中,读者需要认真阅读书中的知识点,多写练习题,不断实践和提高自己的编程能力。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值