java从入门到精通
2023-06-10 15:23:15 8 举报
AI智能生成
java
作者其他创作
大纲/内容
Java是一门高级的面向对象的程序设计语言,也是一种跨平台的程序设计语言
java语言编写的程序既是编译型又是解释型的
程序代码经过编译之后转换成一种叫java字节码的中间语言,编译只进行一次
java简介
java语言最外部的数据类型是对象,所有元素都要通过类和对象来访问
面向对象是java语言基础,也是它的重要特性
java的分布性包括操作分布和数据发布
Java具有与体系结构无关的特性
运行java需要解释器
java语言取消了类c语言中的指针和内存释放等语法,使用java可以编写出防病毒和防修改的系统
java会检查程序在编译和运行时的错误并消除错误
支持多线程机制
编译后的字节码是在解释器中运行的
java可以动态调整库中方法和增加变量
java语言的特性
1.初识java
它的平台体系结构是在插件概念的基础上构建的
透视图是Eclispe工作台提供的附加组织层,可实现多个视图的布局和可用操作的集合,不同的透视图可切换,同一时刻只能用一个透视图
视图有自己独立的菜单和工具栏,多用于浏览信息的层次结构和显示活动编辑器的属性
熟悉Eclipse
设置断点是程序调试不可少的手段
创建java程序,进行程序调试
使用Eclipse
2.熟悉Eclipse开发工具
一个Java应用程序是由若干个类组成的
类的属性称为类的全局变量(成员变量),将方法中的属性称为局部变量
main()方法是程序开始执行的位置
API文档是程序开发人员不可或缺的工具
主类结构
int型
byte型
short型
属于高精度数据类型
long型
整数类型用于存储整数数值
单精度浮点类型和双精度浮点类型具有不同的取值范围
浮点类型用于存储含有小数部分的数值
在定义字符型变量时用单引号表示,虽然只是一个字符,因为使用单引号,所以表示的是字符串不是字符
char型
转义字符具有特定的含义,不同于字符原有的意义,所以称转义
转义字符
字符类型用于存储单个字符
布尔值不能与整数类型进行切换
布尔类型(逻辑类型)
基本数据类型
标识符不能是Java中的关键字(保留字)
标识符由任意顺序的字母,下划线(-),美元符号($)和数字组成,第一个字符不能是数字
标识符
不能把这些单词作为标识符使用
关键字(保留字)
标识符与关键字
内存空间内的值就是变量值
变量的命名必须是合法的标识符
声明变量
当变量被final关键字修饰时,该变量就变成了常量,必须在定义时就设定它的初值
在程序运行过程中一直不会改变的量称为常量
声明常量
变量与常量
可将右边操作数所含的值赋给左方的操作数
赋值运算符
用于程序中的变量之间,变量与自变量之间以及其他类型之间的比较
比较运算符
增量与减量运算
算术运算
比较运算
逻辑运算
赋值运算
运算符优先级
运算符
不包括逻辑类型和字符类型
这些类型由精度从低到高顺序:byte<short<int<long<float<double
从低级类型向高级类型转换,系统自动执行
隐式类型转换
把高密度的变量的值赋给低精度的变量时,必须使用显式类型转换运算
显式类型转换
数据类型转换
3.java语言基础
每个语句都是从上到下被执行
复合语句
告诉程序在某个条件成立的情况下执行某个语句,在另一种情况下执行另外的语句
if条件语句
条件语句
利用一个条件来控制是否要继续反复执行这个语句
while循环语句
不能完全取代for语句,但可以改写为for语句
foreach语句
循环语句
跳出当前循环
break语句
不是立即跳出循环,而是跳过本次循环,回到循环的条件测试部分,重新开始执行循环
continue语句
循环控制
4.流程控制
数组作为对象允许使用new关键字进行内存分配。
使用数组前必须首先定义数组变量所属的类型,可以跟基本数据类型一样进行初始化操作,可分别初始化数组中的每个元素
一维数组
一维数组的每个元素都是数组,那他就是二维数组
二维数组
通常使用for循环来实现
获取数组中的每个元素
遍历数组
数组的基本操作
冒泡排序
将最大的数放到最后,固定不动,第二次再将最大的数放到最后,固定不动,直到全部待排序的数据元素排完
直接选择排序
就是第一个数和最后一个数交换,第二个数和倒数第二个数交换,第三个数和倒数第三个数交换,以此类推。就像一面镜子,如果是单数中间那个不会交换。直到把所有的数组元素反转替换
反转排序
数组排序算法
5.数组
对象是事物存在的实体
对象
同一类事物的统称,以方法的形式定义,是封装对象的属性和行为的载体
类
封装
类与类之间同样具有关系,称为关联。继承就是关联的一种
继承
多态
面向对象概述
可以是任意类型,对象的属性也称为成员变量,直接写在类里的叫成员变量
成员变量
成员方法有返回值和不返回任何值的选择
一个成员方法可以有参数
成员方法
控制着对类和类的成员变量以及成员方法的访问
权限修饰符
在方法被执行时创建,在方法执行结束时销毁,局部变量在使用时必须进行赋值操作或被初始化
局部变量
在构造方法中可以给成员变量赋值,构造方法没有返回值
类的构造方法
通常为了提供共享数据或方法
静态变量和静态方法
它定义了程序从何处开始,主方法是静态的,没有返回值,主方法的形参为数组
类的主方法
每个对象都是相互独立的,都具有生命周期
6.类和对象
子类继承父类后,调用后同时会进行子类和父类打印
Java的每个子类都只能继承一个父类,简称单继承,可提高软件的可维护性和·可扩展性,可以减少软件开发周期
类的继承
所有的类的父类,是java类层中的最高层类
Object类
在运用向上转型过程中,父类的对象无法调用子类独有的属性或者方法
将子类对象(等号右边)向父类引用(等号左边)
向上转型
将父类对象向子类引用,需要进行强制类型转换
向下转型
父类对象可以强制转换为子类对象,但是必须让父类对象先引用这个子类对象
两个没有继承关系的对象不可以进行向上转型或者向下转型
对象类型的转换
就是在同一个类中允许存在一个或一个人以上的同名方法,只要这些方法的参数个数或类型不同即可
方法的重载
final关键字——不可被修改(常量)final修饰方法——不可以被重写final修饰方法——不可以被继承
final关键字
同一方法或同一个地方出现不同的形态就叫多态,利用多态可以使程序具有良好的扩展性
有抽象方法的类一定是抽象类,一般将父类定义为抽象类
抽象类
是抽象类的延伸,接口所有方法都是抽象方法,可以被权限修饰符修饰
接口
抽象类与接口
7.继承.多态.抽象类与接口
有包的存在就有类名存在,类名定义多种,但功能不同
类名冲突
一个完整的类名需要包名与类名的组合,每个类都属于一个类包,只要保证同一类包的类不同名,就可以有效地避免同名类冲突的情况
完整的类路径
创建包
当使用import指定了一个包的所有类时,并不会指定这个包的子包中的类,如果要用到这个包的子包中的类,需要再次对子包进行单独引用
import关键字除了可以导入包外,还可以导入静态成员,
导入包
java类包
如果在外部类中定义的成员变量与内部类的成员变量名称相同,可以使用this关键字
成员内部类不止可以 在外部类使用,在其他类中也可以使用。在其他类中创建内部类的对象语法特殊,在一个类中使用内部类,可以在内部类中直接获取其所在类的私有成员变量
成员内部类
匿名类是只在创建对象时才会编写类体的一种写法,匿名类特点:现用现写
匿名内部类
内部类
8.包和内部类
在程序运行时可能出现的一些错误称为异常,它是一个在程序执行期间发生的事件,它中断了正在执行的程序的正常指令流
异常概述
java的异常处理是结构化的,不会因为一个异常影响整个程序的执行
异常的抛出与捕捉
java常见的异常类
括号里是传入参数,super是隐藏方法,作用是调用父类的构造方法打印出错误信息
定义1个exception类继承,这就是自定义异常
自定义异常
使用shrows关键字将异常抛给上一级后,如果不想处理该异常,可以继续向上抛出,但最终要有能处理该异常的代码
在方法中抛出异常
运行时异常
9.异常处理
字符串常量可以是系统能够显示的任何文字信息,甚至可以是单个字符
字符串必须包含在一对双引号(\" \")之内
声明字符串
在Java语言中,将字符串作为对象来处理,因此可以像创建其他类对象一样来创建字符串对象。创建对象要使用类的构造方法
创建字符串
String类
使用“+”运算符可实现连续多个字符串的功能。“+”运算符可以连接多个string对象并产生一个新的对象string对象
连接多个字符串
字符串也可同其他基本数据类型进行连接,如果将字符串同其他数据类型进行连接,会将其他数据类型的数据直接转换成字符串。
连接其他数据类型
连接字符串
语法:str.length();
使用string类的length()方法可获取声明的字符串对象的长度
获取字符串长度
语法:str.indexOf(substr)str:任意字符串对象substr:要搜索的字符串
indexOf(string s)该方法用于返回参数字符串S在指定字符串中首次出现的索引位置,当调用string类的indexOf()方法时,会从当前字符串的开始位置搜索S的位置,如果没有检索到字符串S该方法的返回值是-1
语法:str.lastindexOf(substr)str:任意字符串对象substr:要搜索的字符串
lastindexOf(string str) 该方法用于返回指定字符串最后一次出现的索引位置。当调用string类的lastIndexOf()方法时,会从当前字符串的开始位置检索数字字符串str,并将最后一次出现在str的索引位置返回,如果没有检索到字符串str该方法返回-1
字符串查找
获取字符串信息
通过string类的sudstring()方法可对字符串进行截取substring(int beginlndex)
获取子字符串
语法:str.trimstr:为任意字符串对象
rim()方法返回字符串的副本,忽略前导空格和尾部空格
去除空格
replace()方法可实现将指定的字符或字符串替换成新的字串或字符串,replace()方法返回的结果是一个新的字符串。如果字符或字符串oldChar没有出现在该对象表达式中的字符串序列中,则将原字符串返回
字符串替换
startsWith()方法与endsWith()方法分别用于分别于判断字符串是否指定的内容开始或结束。这两个方法的返回值都为boolean类型
判断字符串的开始与结尾
判断字符串是否相等
按字典顺序比较两个字符串
语法:str.toLowerCase()str 是要进行转换的字符串
toLowerCase()方法该方法将字符串中的所有大写字母转换为小写。如果字符串中没有应该被转换的字符,则将原符串返回:否则将返回一个新的字符串,将原字符串中每个大写字母都转换成小写,字符串长度不变
语法:str.toUpperCase()str 是要进行转换的字符串
toUpperCase()方法该方法将字符串中所有的小写字母转换为大写。如果字符串中没有应该被转换的字符,则将原符串返回;否则返回一个新字符串,将原字符串中每个小写字母都转换成大写,字符串长度不变。
String 类的 toLowerCase0方法可将字符串中的所有大写字母改写为小写字母,而 toUpperCase0方法可将字符串中的所有小写字母改写为大写字母。
字母大小写转换
语法:str.split(String sign)sign 为分割字符串的分割符,也可以使用正则表达式
split(String sign)该方法可根据给定的分割符对字符串进行拆分。
使用split0方法可以使字符串按指定的分割字符或字符串进行分割,并将分割后的结果存放在字符串数组中。
字符串分割
字符串操作
在应用程序设计中,经常需要显示日期和时间。如果想输出满意的日期和时间格式,一般需要写大量的代码、经过各种算法才能实现。frmat方法通过给定的特殊转换符作为参数来实现对日期时间的格式化。格式化日期与时间组合的转换符定义了各种日期时间组合的格式
日期和时间字符串格式化
常规类型格式化可应用于任何参数类型
常规类型格式化
格式化字符串
正则表达式通常被用于判断语句中,用来检查某一字符串是否满足某一个格式。正则表达式是含有一些具有特殊意义字符的字符串,这些特殊字符称为正则表达式的云字符。
使用正则表达式
创建成功的字符串对象,其长度是固定的,内容不能被改变和编译。虽然使用“+”可以达到附新字符或字符串的目的,但“+”会产生一个新的 String 实例,会在内存中创建新的字符串对象。利用StringBuilder类中的方法可动态地执行添加,删除和插入等字符串的编辑操作
字符串生成器
10.字符串
能在 int 类型和 String 类型之间互相转换,同时还提供了其他一些处理 int 类时非常有用的常量和方法
Integer类
可以将 double 类型转换为 String 类型,将 String 类型转换为do类型,也提供了其他一些处理 double 类型时有用的常量和方法。
Double类
Boolean 类将基本类型为 boolean 的值包装在一个对象中。一个 Boolean 类型的对象只包含一个类型为 boolean 的字段
Boolean类
Character类
对于数值型的包装类,它们有一个共同的父类——Number类,该类是一个抽象类
Number类
将基本数据类型封装在包装类中,可以把这些基本数据类型转换为对象进行处理
包装类
当格式化数字时,可在 DecimalFormat 类中使用一些特殊字符构成一个格式化模板,使数字按照-定的特殊字符规则进行匹配
没有格式化的数据遵循以下原则:如果数据绝对值大于 0.001 并且小于 10000000,使以常规小数形式表示。如果数据绝对值小于 0.001 或者大于 10000000,使用科学记数法表示。
数字格式化主要针对的是浮点型数据
数字格式化
Math 类中包含的三角函数方法如下:public static double sin(double a): 返回角的三角正弦。public static double cos(double a): 返回角的三角余弦。public static double tan(double a): 返回角的三角正切。public static double asin(double a):返回一个值的反正弦。public static double acos(double a):返回一个值的反余弦。public static double atan(double a): 返回一个值的反正切。public static double toRadians(double angdeg): 将角度转换为弧度。public static double toDegrees(double angrad): 将弧度转换为角度。
Math类
在 Random 类中,提供了获取各种数据类型随机数的方法,下面列举几个常用的方法: public int nextInt0:返回一个随机整数。publicintnextImt(int n):返回大于等于0且小于n的随机整数public long nextLong0:返回一个随机长整型值。public boolean nextBoolean0: 返回一个随机布尔型值public float nextFloat0: 返回一个随机单精度浮点型值。public double nextDouble0: 返回一个随机双精度浮点型值。public double nextGaussian0: 返回一个概率密度为高斯分布的双精度浮点型值。
Random 类是 JDK 中的随机数生成器类,可以通过实例化一个 Random 对象创建一个随机数生器
Random类
在运算中 BigInteg类可以准确地表示任何大小的整数值而不会丢失信息。
BigInteger类
支持任何精度的定点数,可以用它来精确计算货币值。
BigDecimal类
数字处理
System类是JDK 中提供的系统类,该类是用fial 修饰的,所以不允许被继承。System 类提供了很多系统层面的操作方法,并且这些方法全部都是静态的。
System类
可以把数字化信息流转为人类可识别的文字,让 Scanner 扫描Systemin 就可以获取用户输入的值了
Scanner类
用于表示日期时间,使用该类表示时间需要使用其构造方法创建对象
Date类
日期时间格式化
是一个抽象类,该类还为实现包范围外的具体日历系统提供了其他字段和方法,这些字段和方法被定义为 protected,Calendar 类的getInstance0方法返回一个 Calendar 对象,其日历字段已由当前日期和时间初始化
Calendar类
日期时间类
Runtime 类提供exec0方法让 Java代码可以执行系统的命令,exec0方法有很多重载的形式,exec0方法会返回一个 Process 对象。Process 类是 Java 中进程类,该类是抽象类,不能使用new关键字创建实例
执行本地命令
Runtime 类可以通过 freeMemory0方法查看当前Java 虚拟机可用内存的剩余量。如果程序能够实时监控内存剩余量,就可以尽量控制程序对内存的占用,从而避免出现“内存溢出”的情况。同样,也可以用来对测试程序性能,检验程序算法是否导致内存紧张
查看内存
Runtime 类不能使用 new 关键字创实例,只能通过RuntimegetRuntime0方法获取实例。
Runtime类
11.常用类库
java从入门到精通
收藏
0 条评论
回复 删除
下一页