声明
本文章是本人在bilibili视频的学习笔记,视频地址清华大学java语言49讲(郑莉教授)
面向对象思想
#将客观事物看做是有状态和行为的对象,通过抽象找出同一类对象的共同状态和行为
面向对象给软件发展的好处
1.可重用性(可以高频率使用的类库)
2.可靠性(基于规范的重用模块(包)
结构体里没函数
面向对象基本特征
#抽象和封装
#继承
#多态
抽象出需要的特征(学生成绩系统我不理你圆脸瓜子脸,只需要你的学号,姓名)
程序设计也是一门艺术
投影仪里面是什么东西我不需要知道,我只需要通过外面的接口去使用就行了(你只需要操作遥控器就能实现功能)
— —— —— —
继承和多态是复用而设计的机制
如果只支持类,不支持继承和多态,不能称之面向对象语言,只能说基于对象的语言
安全性
java不支持指针
java的内部安全措施
reference操作和c语言指针很像,但是把具体隐藏起来了
内存管理机制
不会内存泄漏(如果一个24h×365不停运行的程序,哪怕有一丁点内存泄漏(没有释放用过的垃圾),垃圾就会占满内存)
平台无关性
一处编写,各处运行
支持多线程
Java与C++区别
1.没有全局变量,可以在类中定义共用,静态的数据成员,实现相同的功能
没有全局变量,没有全局函数,一切都给你包在类里边
2.没有操作符重载
(只好通过写方法实现操作符的功能)
用java写程序,基本必须要用java类库中的类
java类库:预定义的很多基础有用的功能模块
(类库使用可以参考API文档)
(当下载安装jdk时,文档同时被下载)
——————
Java5
增强for循环
泛型(C++也有,类型参数化)
自动装箱拆箱
枚举类型
可变长参数
静态import
注解
跨平台性原理
半编译,半解释
编译链接,才成为可执行程序(平台相关)
每个机器的指令系统不同(二进制指令集不同)
可移植和跨平台不同
移植是需要在新平台重新编译(可能需要稍作修改,修改越少,称移植性越好)
JVM 虚拟机
做到跨平台是使用JVM进行解释
JVM是解释执行,翻译一点,执行一点
虚拟机的效率再高也不高于编译
解释执行
Applet局限性
(网络应用程序)
1.在客户端主机的文件系统中读/写受限
2.不能运行客户端主机的任何程序
3.仅能在服务器和客户端之间建立联系
Applet需要内嵌到Html中,一个.class文件
Applet举例
Graphic方法
方法init()
方法paint()
Applet不能随意读写本地磁盘(网络程序随意读写磁盘,中个病毒不要太容易)
Servlet
Servlet用到的包在J2EE的API中能找到,所有的servlet都能实现Servlet接口
Applet增强了浏览器的功能,Servlet增强了服务器的功能
(servletl去查数据库,去计算……)
JSP
JSP是嵌入了Java代码的的HTML
标准输入输出简介
标准输入流 System.in
标准输出流 System.out
例如:System.out.println("Hello world")
国际标准会议,吵架会,标准草稿,多个成员国投票
C语言用的是函数库,java,C++用类库实现输入输出功能
c,c++,java都没有输入输出语句,如果直接在标准中规定,需要太庞大臃肿,实现各种输出你可以自己写类库实现