没有合适的资源?快使用搜索试试~ 我知道了~
Java学习笔记


试读
41页
需积分: 0 0 下载量 155 浏览量
更新于2018-08-21
收藏 4.25MB DOC 举报
Java学习笔记, 以及知识点的总结。 大家可以看看。

笔记记录:
Java 学习笔记
一、关于 Java
1、Java 的三种体系:
J2SE
用于桌面开发,低端商务开发(Java to Standard Edition) ;
J2ME
用于移动电话、电子消费品、嵌入式开发(Java to Micro Edition) ;
J2EE
企业级解决方案的开发,基于 WEB 的开发等,(Java to Enterprise Edition)
;
2、Java 的特点:
序号 语言角度 学习角度
1
比 C++ 简 单 , 放弃了对 指 针 的 使
用;
入门迅速,容易学;
2
目前最好的网络编程语言; 编写更少、更好的代码;
3 开放式先进的技术,可移植性强; 更快的开发程序
4
完全的 OO(面向对象,单根结构) 的
跨平台语言;
用纯 Java 编写的程序可以避免平台
相关性;
5
分布式开发,支持多线程,可靠安
全健壮;
一次编写,处处运行,可以更容易的
发布软件;
3、主要的开源网站:
①www. J ava.net ②www.apache.org ③www.sourceforge.net
④www.theserverside.com⑤www.javaworld.com ⑥' www.chinalab.com
4、其他技术问题:
序号 特征
1
目前国内比较流行的技术组合: spring(www.springframework.com) +
hibernate 技术,还有 webservice +XML 技术;
2
J2EE 的相关技术:EJB,SEVILET,JSP 等;
3
源文件(*.java) --------->类文件(*.class) --------->java 虚拟机(JVM)
编译器 解释器
4
应用程序层 Java 应用程序
Java 平台层 Java 虚拟机
操作系统层
UNIX WINDOWS RTOS
硬件层
SPARC X86 MIPSPPC
二、面向对象的特征
序号 特征
1
面向对象的三个原则
封装性
封装的基本单元是类(class),类是一个抽象的逻辑结构,而类的对象是
一个真实的物理实体;类的目的是封装复杂性,在类内部存在隐藏实现
复杂性机制;
封装(encapsulation) 的两个好处:
模块化:可以独立于其他对象的源代码进行编写和维护,可以很容易的
将对象在系统中传递;
隐藏信息:其他对象可以通过本对象的一个公共接口进行通信而不影响
其他对象;
继承性
继承是一个对象获得另一个对象的属性的过程,继承机制是一个对象成
为一个更具通用类的一个特定实例成为可能,避免了代码的重复编写;
多态性
(重载 overload:方法名相同、参数的个数不同、类型、顺序不同;
覆盖 override:方法名、参数、返回值都相同,子类不能缩小父类方法的
访问权限,子类不能抛出比父类范围更大的异常, final 方法不能被覆
盖,私有方法不能被覆盖) ;
多态性就是“一种接口,多种方法”,可以为一组相关的动作设计一个通
用的接口,其实类的函数的重载就是一种多态的体现;

笔记记录:
4
引入抽象编程的思想; 类的封装就是一种抽象思想

笔记记录:
三、Java 关键字
1、类访问修饰符
序号 说明
1
类的修饰符只有 public 和 default 两个;
2
public 修饰类时表示任何包的其它类都可以访问该类;
3
访问修饰符为 default 时只有在同一个包里的类才能访问它,其他包里的都不行;
4
类的构造函数(构造器) 不能用 final、abstract、synchronized、native、static 等关键
字进行修饰;
2、成员访问修饰符(public、protected、default、private)
序号 规则说明
1
java 的成员访问修饰符有 4 种:public、private、protected、default
2
public static == static public;
3
类的成员访问修饰符的详细描述如下:(√表示允许访问,×表示不能访问)
visibility public protected default private
访问同一个类
√ √ √ √
访问同一个 package 中不同的类
√ √ √
×
访 问 在 不 同 package 中 的 父 类
(superclass)
√ √
× ×
访问不同的 package 中不同的类
√
× × ×
综合上表,访问修饰符的访问权限为:public>protected>default>private
3、final 关键字
序号 修饰范围 规则说明
1 类
final 类不能被继承,final 类的性能会有所提升如:
public final class A{…}
public class B extends A{…} //错误,A 被 final 类不能作为 B 的基类
2 方法
final 成员不能被重写(overriding);
3 类的成员变量
final 变量不能被修改值,如:
public final class A{
static final int a = 10;
a = 11; //错误,不能被修改
static final int b; //此处是非法的,必须是如 static final int b=9;
}
4
方法中的变量
可以在声明时不赋值,但是在使用之前必须赋值,一旦赋值就不能被修
改;
public static void method() {
final int a;
System.out.println(a) ; // 错 误 , 必 须 改 为 : a = 10 ;
System.out.println(a) ;
}
5
final 修饰的对象表示它所修饰的对象所分配的内存地址不可变(应用不可变);内存地址的
内容可以改变
final 和 abstract 不能同时使用,如 public final abstract class A{}是不允许的;因为 final 是使
类 A 不能被继承而 abstract 是要类 A 在其子类中实现它的方法;
4、abstract 关键字
序号 修饰范围 规则说明
1
类 1、 被修饰的类为抽象类,不能被实例化(生成对象) 只能作为其他类的基
类(父类)
2、 abstract 不能修饰类的构造函数(构造器) ;
3、 类下面的方法可以不都被修饰为 abstract,没有被修饰的方法则需要实
现该方法;
4、 抽象类可以有 main 方法且可以运行

笔记记录:
2
类的方法 修饰方法时,它的类也必须被修饰为 abstract
3
其它 abstract 不能与 final 同时使用;
5、static 关键字
如果一个类的成员被声明为 static,则该成员实际上是一个全局变量,static 关键字的使用规则如下:
序号 规则说明
1
在 java 中只有接口、最外层的类(包括抽象类)和 static Inner Class 可以定义 static 变量或方
法;
2
static 变量和方法属于它的类,它的类的所有对象都可以访问到它;但是任何一个类的对象对
static 变量进行修改都直接影响到所有对象;
3
它们只能访问 static 修饰的类的成员变量和方法
4
它们不能以任何方式引用 this 或 super;
5
static 修饰的变量不可以被序列化
6
static 不能与 abstract 同时使用
7
static 修饰的方法、变量可以被继承,但是不能被覆盖,不能形成多态
6、synchronized 关键字
synchronized 只能用在方法的声明的前面,而变量不能用该关键字;
序号 规则说明
1
synchronized 不能使用在构造方法上
2
synchronized 不能与 abstract 同时使用
7、native 关键字
序号 规则说明
1
native 修饰的方法是本地方法
2
native 不能与 abstract 同时使用,因为 native 调用是 jvm 的实现方法
8、transient 关键字
序号 规则说明
1
transient 修饰的类的成员变量,不可以被序列化,类实现的 Serializable 接口
2
transient 修饰的类的成员变量,如果实现的是 Externalizable 接口,可以覆盖 writeExternal 和
readExternal 方法手工进行对 transient 变量进行序列化
9、volatile 关键字
序号 规则说明
1
volatile 修饰的类的成员变量,可以保证多线程执行时的可见性,基于内存栅栏实现
2
volatile 修饰的类的成员变量,在操作时不能保证原子性。如多线程操作时,可能对过期的值
进行操作。
3
volatile 可以禁止指令重排序,
1.当第二个操作是 voaltile 写时,无论第一个操作是什么,都不能进行重排序
2.当地一个操作是 volatile 读时,不管第二个操作是什么,都不能进行重排序
3.当第一个操作是 volatile 写时,第二个操作是 volatile 读时,不能进行重排序
10、strictfp 关键字
序号 规则说明
1
strictfp 可以修饰接口、类、方法,但是不允许对接口中的方法以及构造函数声明 strictfp 关键
字
2
strictfp 来声明某个类、接口或者方法时,那么在这个关键字所声明的范围内所有浮点运算都
是精确的,符合 IEEE-754 规范的。例如一个类被声明为 strictfp,那么该类中所有的方法都是
strictfp 的
11、try-catch-finally 和 return 关键字
序号 规则说明
1
finally 执行顺序:finally 语句是在 try 的 return 语句执行之后,return 返回之前执行
2
finally 块中的 return 语句会覆盖 try 块中的 return 返回

笔记记录:
3
如果 finally 语句中没有 return 语句覆盖返回值,那么原来的返回值可能因为 finally 里的修改
而改变也可能不变。值是否改变涉及到变量是基本类型还是引用类型,如果修改的是值和引
用地址,则不会改变,如果修改的是地址里面对象的值,则会改变
4
try 块里的 return 语句在异常的情况下不会被执行,这样具体返回哪个看情况
5
当发生异常后,catch 中的 return 执行情况与未发生异常时 try 中 return 的执行情况完全一样
修改值
public class FinallyTest3 {
public static void main(String[] args) {
System.out.println(test3());
}
public static int test3() {
int b = 20;
try {
System.out.println("try block");
return b += 80;
} catch (Exception e) {
System.out.println("catch block");
} finally {
System.out.println("finally block");
if (b > 25) {
System.out.println("b>25, b = " + b);
}
b = 150;
}
return 2000;
}
}
运行结果:
try block
finally block
b>25, b = 100
100
修改应用地址和地址里面的对象
public class FinallyTest6 {
public static void main(String[] args) {
System.out.println(getMap().get("KEY").toString());
}
public static Map<String, String> getMap() {
Map<String, String> map = new HashMap<String, String>();
map.put("KEY", "INIT");
try {
map.put("KEY", "TRY");
return map;
} catch (Exception e) {
剩余40页未读,继续阅读
资源推荐
资源评论
2023-10-24 上传

144 浏览量

2009-06-12 上传
2018-09-20 上传

197 浏览量

139 浏览量
117 浏览量
2018-04-08 上传
2018-01-06 上传
162 浏览量
140 浏览量
资源评论


VampiresLove
- 粉丝: 0
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 国家网络安全宣传周活动心得.doc
- 数据结构与算法(5)ppt课件.ppt
- 电子商务的求职信范文.doc
- 最新国家开放大学电大《文学英语赏析》网络核心课形考网考作业及答案.pdf
- 锅炉过热气温控制MATLAB及控制系统仿真.doc
- 网络系统集成概述.docx
- 从技术专家到领导者:管理转型指南
- 软件项目验收报告模板.doc
- 游戏开发团队建设培养.pptx
- 医学科研数据挖掘概述.ppt
- 销售项目管理LTC.ppt
- 有关计算机求职信三篇.docx
- 武汉大学网络营销()网络营销产品层次.pptx
- 中职-计算机基础教学工作总结.docx
- 无线网络勘察技术.ppt
- 电子商务项目成本效益分析方法研究.doc
安全验证
文档复制为VIP权益,开通VIP直接复制
