个人学习记录!!!
Java概要
Java简史
诞生于:1995年
由sun公司开发,James Goling带领团队
开发工具包JDK(包括JVM),官网下载: https://www.oracle.com
JavaSE(标准版)、JavaEE(企业版)、JavaME(微型版)
Java相关基础
1.Java特性
- 简单性:不支持多继承,屏蔽指针(底层为c++实现)
- 健壮性:自动垃圾回收(GC机制)
- 可移值性:JVM(Java虚拟机)、跨平台
2. Java编译运行
- 编译:javac.exe
由 .Java 源程序 --> (编译生成) .class文件 - 运行:java.exe
运行class文件,A.class 使用为:Java A
此过程是在DOS直接运行Java文件
3. 环境变量path
- 相当于给windows操作系统程序指路,在电脑属性 --> 高级系统设置中配置
4. Java关键缩写
- JDK:java开发工具包
- JRE:java运行环境
- JVM:java虚拟机
5. Java开发基础知识
- java开发分为编译期和运行期,编译期主要检查语法错误
- java内存:
方法区内存:编译生成class文件(编写的代码方法)
堆内存:对象引用的储存
栈内存:程序运行(方法调用)
方法只有调用才会分配内存空间
6. Java集成开发环境【简称:IDE】
- 如:eclipse(myeclipse)、Intellij IDEA、NetBeans、JBuilder
Java基础
数据类型
1. 八种基本数据类型
数据类型 | 字节大小 |
---|---|
byte | 1 |
short | 2 |
int | 4 |
long | 8 |
float | 4 |
double | 8 |
boolean | 1 |
char | 2 |
- 变量默认为 0 或 null
- char 默认位 \u0000
- 一个中文占用2个字节(char)
- java默认把数字当成int型(超出整型加 L )
- java默认浮点类型为double型
- double和float在计算机内部二进制存储为近似值
- boolean型只有true和false(C语言可以用0和1表示)
- 数据类型容量:byte < short < int < long < float < double ,无论字节大小,浮点数容量大于整型
2. 字节大小
扫描二维码关注公众号,回复:
8811779 查看本文章
字节 | 换算 |
---|---|
1 Byte | 8 bit |
1 KB | 1024 Byte |
1 MB | 1024 KB |
1 GB | 1024 MB |
1 TB | 1024 GB |
- 一个比特(bit)等于一个二进制位(1/0)
3. 编码
- 支持中文简体编码:GB2312 < GBK < GB18030 (容量依次增加)
- 支持繁体中文:大五码 < big5 >
- 全球编码(unicode):UTF-8、UTF-16、UTF-32…
- java采用unicode编码,支持标识符使用中文(但编程一般不建议使用中文)
- ASCII码:‘a’ -->97、’A’–>65、‘0’–>48
关系运算符
- 关系运算符的结果是boolean型
- || 短路与(其中一个不成立及返回) 和 | 逻辑与(所有条件都要执行)
- 位运符 执行快速运算
- 扩展运算符不改变类型
例:byte x = 1;
x += 5 等于 x = (byte)(b + 5)
编程思想
1. 面向对象
- 三大特征:封装、继承、多态
- 面向对象的分析:OOA
面向对象的设计:OOD
面向对象的编程:OOP
2. 方法重载( override)
- 与方法名 和传递参数类型 有关
- 与修饰名 和返回类型 无关
- 静态方法 不能继承和重载
- eclipse 有快捷重写方法
3. 封装
- private成员私有化
- 提供操作入口get、set
- 类构造方法返回类本身
- 类自定义了构造方法,不再提供无参(开发需要自己补上)
- 引用数据类型 null
- 没有static修饰,为实例方法和变量
- static 不存在this
- static 的方法可以用类名和引用
static 的变量可以表示为一族类的公共量
static String country = “中国”(存在方法区内存中,带有类名Chinese.country)
4. 继承 extends
- java为单继承,只能继承一个类(C++可以多继承)
父类各名称(父类、基类、超类、superclass)
子类各名称(子类、派生类、subclass) - 私有、构造方法 不支持继承
- 所有默认继承 java.lang.Object
- 所有子类第一继承最近父类
5. 多态
- 转型(必须有继承关系)
向上转型 --> 子类到父类(调用还是子类方法)
向下转型 --> 父类带子类(需要强转,需要子类的特有方法) - 著名类型异常(存在在强制向下转型–隐患)
java.lang.ClassCastException 类型转换俩者没有关系
在强制类型转换,使用instanceof 避免以上异常错误(A instanceof B)A是否B类型对象
空指针异常:java.lang.NullPointerException
关键语法
1. 注释
- 单行注释 //
- 多行注释 /*… */
- javadoc注释
/**
* javacdoc注释
* 可生成帮助文档
*/
2. switch语句
- case内为 (byte、short、char转换int)int 和 String类型
- case没有break会穿透执行剩下所有(包括default),遇到break停止
3. break语句
- break(continue也一样)可以停止标识符(myFor1)的循环语句
4. static 静态代码块、实列代码块
- static 静态代码块:类之前执行,只执行一次! static{ … } 记录日志等
- 实列代码块在类构造方法前执行(类创建),每次都执行
工具类一般为静态类static
4. final 关键字
- 不可变
- 无法被继承
- 无法被覆盖
- 不可重新赋值
- 成员变量final ,直接赋值 和 构造方法赋值
- final 修饰的引用,地址不能修改,内容可以修改
final 和 static 联合使用为常量,一般为全大写
5. package 关键字
- 命名规范:公司域名倒序 + 项目名 + 模块名 + 功能名
- 全部小写,也是标识符规则
- 一个包一个目录,用 . 隔开
- 使用packe机制后,类名完整加上 + 包名(引包后不需要)
- 同一软件包下可省略包名
6. import 关键字
- 引入其它(包名.*) 或(类名)
- 在package 和class 之间
- java.lang.* 是基础包不需要引用
- ctrl + shift + o 导包(eclipse快捷)
7. 访问权限修饰符
- public 公共 (任何)
- protected 保护 (同包,子类)
- 缺省(同包)
- private 私有(本类)
类只能 public 和 default缺省