笔记整理

Java简介

Java是世界上应用最广泛的计算机语言,是1995年由James Gosling研发的基于C++诞生的一门面向对象语言,其主要目标是“编写一次,到处运行”。Java主要有三个版本:JEE、JSE、JME。现已成为各软件开发编写程序的首选语言。

面向对象

  1. 方法、属性、类、复用、封装、继承 
    执行任务中,需要一个方法,方法给出了执行任务的实际语句。对象有其属性,属性是由类的实际变量指定的。在java中,需要创造称为“类”的程序单元来容纳执行类的任务的方法集。类将属性和方法封装,使对象的方法和属性紧密相关。封装的一大用途是隐藏,对象之间不知其他是如何实现的,实现的细节被隐藏在对象内部,信息隐藏对良好的软件工程很重要。继承可以快速又方便的建立新类——-新类会吸收已有类的特性并可以添加新的特性。

    分析与设计

    面对大型程序,为了创建最佳解决方案,必须有一个详细过程。 
    第一步:分析项目需求——即确定系统需要完成的功能 
    第二步:开发出能够满足这些需求的设计 
    第三步:编写程序 
    第四步:对程序进行精简,对算法进行改进 
    如果分析过程是从面向对象的角度对系统进行分析和设计,则称之为面向对象的分析与设计(OOAD)

Java开发环境

Java类库也称JavaAPI (Java Application Programming Interface Java程序编程接口) 
Java类库中有丰富的现有类和方法集合,其中的程序都是尽心编写的,以高效率的执行。

JDK (Java Development Kit Java开发工具包) 
指的是Java开发工具集。JDK是整个Java的核心,包括了Java基础类库、Java运行环境(JRE)和Java开发工具。是做Java开发必须要安装的。 
JRE(Java Runtime Environment Java运行环境) 
指的是Java运行时环境。Java程序运行时必需要JRE的支持。如果系统只安装JRE的话,则意味着系统可以跑任何Java程序,但不能做Java开发。 

执行Java程序的五个阶段

阶段一:创建程序 
用编辑器程序编辑Java文件,里面包含Java源代码 
Linux系统编辑器为vi和emacs,Windows系统为记事本 
集成开发环境(IDE),提供软件开发过程的工具,常见的有:eclipse和netbeans

阶段二:将Java程序编译为字节码 
字节码由Java虚拟机执行,Java虚拟机是JDK的一部分也是Java平台的基础 
使用javac,如Windows中:javac 文件名.java——Windows中为命令提示符,Linux中为shell提示符,Mac OS X中为终端程序 
运行后会生成.class文件——执行方法为java 文件名

阶段三:将程序加载到内存 
JVM的类加载器读取.class文件,然后将其传入主存中。可以通过磁盘、网络加载.class文件

阶段四:字节验证码 
字节码验证器对字节进行检查,确定是有效的安全的

阶段五:执行 
JVM执行字节码,然后执行,早期JVM一次只能解释和执行一个一个字节码,如今采用解释与及时编译相结合来执行字节码。 
所以执行相当于两个阶段:一是将源代码翻译成字节码,二是将字节码翻译成机器语言使之可以在电脑上执行。

堆、栈、方法区

堆:实例化对象,数据储存 
栈:运行方法 
方法区:加载类,分配类成员变量以及静态方法的入口。含有常量池

注释

注释是每个程序不可缺少的部分,约定中每个程序都以注释开始,注释写有每行程序的作用以及其他一些需要注意的地方。注释是给程序员看的,编译器会将注释去掉。每个右大括号后最好都有一个注释,说明此括号结束的是哪个方法或类。 
注释主要有三种形式: 
1.行尾加// 
2./…..注释多行….
3./*…..文档注释……/

类、标识符、方法

1.类 
基本类型:byte、int、short、long、char、float、 
double、blooean。用时注意所占字节,数字注意精度。汉字占用与char类型相同。 
char、byte、int、long、float、double、short初始值为0,blooean初始值为false,引用类为null。 
每个java程序都至少要声明一个类,关键字是class。格式为:class加空格加类名称,关键字new创建类的新对象。例: 
Scanner input = new Scanner(System.in) 本行中创建了一个新变量input其类型为Scanner,即调用Scanner类。

注:类名称首字母一般大写且与内容相关,public类与java文件同名 
2.标识符 
标识符组成:大小写字母、数字、’_’、’$’。不能以数字开头,不能含有空格,有大小写区分。 
3.方法 
方法(method):一个类有一个或多个方法,但只能有一个main方法。 
访问修饰符:private、public 
区别: 
private只能由声明他们的类访问 
public可由任意类访问

输出

输出指令为System.out.print (printf \ println) 
print为正常输出 
printf可用来显示格式化数据:格式化指令符 
println为自动换行。 
\n:换行符 
\t:水平制表符 
\r:回车符

运算符

  1. 算术运算符、取模运算符(%):+、-、*、/、%
  2. 自增自减运算符:++、–
  3. 关系(比较)运算符:< 、> 、 == 、  != 、<= 、>=
  4. 位运算符:&、|、~、^(异或)
  5. 逻辑运算符:&&、||、!
  6. 移位运算符:>>、<<、>>>
  7. 三目条件运算符: 
    三目条件运算符是一个逻辑判断与赋值运算符的组合。语法如下: 
    <逻辑表达式> ? <表达式1> : <表达式2> 
    当逻辑表达式为真时,表达式1有效;当逻辑表达式为假时,表达式2有效。

逻辑运算符(&&、||)与位运算符(&、|)的区别: 
1. 逻辑运算符只能针对boolean类型进行逻辑运算,而位运算还可以对数值进行逻辑运算。 
2.逻辑运算符有短路情况,即前面的表达式可以得到最终结果时,后面的表达式将不被执行

运算符优先级和结合律 
|运算符 |结合律 |类型 | 
++、- -|从右到左 |一元 | 
*、/、%|左到右|乘性 
+、-|左到右 |加性 | 
<、>、<=、>=、==、!=|左到右|比较关系关系| 
&、|、^、&&、||、 |左到右 |逻辑关系

控制语句

Java中的程序语句

基本三种语句 
1. 顺序语句:按前后顺序执行的语句 
2. 分支语句:选择部分执行的语句 
3. 循环语句:循环执行的一块语句 
结合方式 
1. 简单的将上一个语句的出口和下一个语句的入口连接起来 
2. 控制语句嵌套,一条控制语句可以在另一条语句中 
将多个语句按照恰当算法结合起来,就构成了程序 。

if…..else

if(布尔条件语句){ 
执行语句}else if(布尔条件语句){ 
执行语句}else
 
控制语句如果为真则执行,否则进行下一条判定,直到最后一个else。 
*if和if…else后不加“;”

while、 do…..while

while(布尔条件语句){
执行条件语句}
  • 1
  • 2

当布尔条件语句为真则执行,否则退出语句

do{
执行语句}while(布尔条件语句)
  • 1
  • 2

如果布尔条件语句为真,则继续执行,否则退出


do…..while和while的区别:do….while是先执行一次后判断,while是先判断后执行。 
如果while不能判断为假,则会无限循环。

for

for(初始化循环因子;布尔条件语句;循环因子改变){
执行语句}
  • 1
  • 2

当布尔条件语句为真则执行,然后执行循环语句改变,然后在进行循环语句。 
for的初始化循环因子不能在for外使用,for中三个语句都可省略,但” ; “不可省略。

switch ……case(default)

switch(<整形表达式>或<字符串表达式>){
    case(跟switch后相同类型的常量) 
        执行语句 breakcase(跟switch后相同类型的常量) 
        执行语句 breakcase(跟switch后相同类型的常量) 
        执行语句 breakdefault:
        执行语句;
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

比较switch和case后,如果相同则执行,如果都不符合则执行默认分支default后。 
一般将默认分支放最后,默认分支后break可以省略。

break、continue

break:用于从当前循环退出,执行控制语句后的第一条语句。 
continue:用于结束本循环中其余语句,继续下一次循环

java三大要素:继承、封装、多态


继承

每个类只能继承一个类,object默认为所有类的父类 
关键字: 
1.extends:表示继承,用法为<子类>extends<父类> 
2.super:表示当前类的父类,用super()表示调用父类的构造方法 
3.this:表示当前类的对象,还可以使用this()表示调用当前类的构造方法 
4.fanil:被fanil修饰的变量为常量,被fanil修饰的方法不能被重写的,被fanil修饰的类不能被继承 
加载过程: 
1.加载main方法 
2.将父类的static方法分配执行入口 
3.main进栈 
4.加载子类——->加载父类 
上转型对象:将子类实例化为父类,失去了子类新增的方法,和新增的变量,可以操纵父类的对象和方法, 
如果方法被重写,调用的是子类重写的方法,上转型对象可以再次强制转换为子类 
方法的重写以及隐藏: 
隐藏即父类方法被子类覆盖。 
方法的重写规则: 
1.参数个数及对应类型必须相同 
2.不得修改返回值 
3.不得降低访问级别

多态

当一个父类存在多个派生类的时候,并且每个派生类都重写了父类中的某个方法,那么父类的该方法在不同的子类中就出现了不同的行为,这就是多态。

关键字abstract:由abstract修饰的方法叫抽象方法,非抽象类子类必须实现抽象父类的所有抽象方法,有abstract方法必须则类必须为abstract类,abstract类中可以有非抽象方法,抽象类不能被实例化,abstract只关心此方法是否存在,而不关心此方法是否被实现。 
接口(interface):接口中所有方法都为抽象方法,关键字implements。<子类> 
接口和父类:接口指一个方法,父类指一个类别。一个子类只可以有一个父类但可以有多个接口。

封装 ##

把对象和过程包围起来,实际上是将对象隐藏起来,使用者只能通过已定义的接口进行访问,适当的封装可以让程序更便于理解,也使程序更加安全。 
封装的访问级别: 
public:可被当前类、同一个包中其他类、不同包中的子类、不同包中的非子类访问 
protected:可被当前类、同一个包中其他类、不同包中的子类访问 
友好的(即什么都没有):可被当前类、同一个包中其他类访问 
private:只可被当前类的内部访问

Math类

Math类位于java.lang包中,可以直接使用,无需引入。 
常量: 
Math.PI:原周长与直径之比π 
Math.E:自然对数的基值e 
常用方法: 
abs(x)————-x的绝对值 
ceil(x)————-x四舍五入 
floor(x)————x向下取整 
top(X)————-x向上取整 
exp(x)————-e^x 
max(x,y)、min(x,y)—取较大较小值 
sqrt(x)————-x的平方根 
pow(x,y)———–x的y次幂 
cos、tan、sin——-三角函数 
log(x)————–x取对数

String类

**创建方式: 
1.String str = “”; 
2.String str = new String(); 
3.String str = new String(“”); 
4.char cs[] = {};String str = new String(cs) 
5.String str = new String(char[],int start,int end) 
cs中从start到end 
常用方法: 
length();String的长度 
equals(str);比较和str是否相同 
endWith(str)、startWith(str):判断是否以str开头、结尾 
compareTo(String str):和str按字典顺序比较;相同返回0,大则返回正数,小则返回负数。 
indexOf(str):检索str第一次出现的位置,如果没有则返回-1. 
lastIndexOf(str):检索str最后一次出现的位置,没有则返回-1. 
indexOf(str,start):检索str从start开始第一次出现的位置,没有则返回-1. 
lastIndexOf(str,end):检索str到end位置最后一次出现的位置,没有则返回-1 
substring(start,end):截取从start到end位置的字符并返回。 
replaceAll(old,new):以new替换old。 
trim(str):去掉起始和结束位置的所有空格并返回余下字符串 
split(str):以str分割当前字符并返回字符串组

封装类 ##**

基本数据类型的封装类: 
int————–>Integer 
byte————>Byte 
short———–>Short 
long———–>Long 
boolean——->Boolean 
char———–>Character 
double——–>Double 
float———–>Float

基本数据类型封装类的常用方法: 
1.字符串转化为封装类:封装类.parse封装类(<目标字符串>) 
2.封装类转换为字符串:String.valueOf(<目标>)=====>注:目标必须符合

Character常用方法: 
isDgit(ch):是否是数字。 
isLetter(ch):是否是字母。 
isLetterOrDgit(ch):是否是字母或者数字。 
isLowerCase(ch):是否是小写字母。 
isUpperCase(ch):是否是大写字母。 
toLower(ch)—toUpper(ch):转换为小写大写 
isSpaceChar(ch):判断是否是空格




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章