java学习整理20170728

来源:互联网 发布:php网页爬虫 编辑:程序博客网 时间:2024/05/17 08:58
0.认识JAVA
a)java主要特点:面向对象;健壮的(异常处理/GC/强类型);可移植;多线程;动态的;
b)关键部分:JDK(开发环境包tool和类库);JRE(java运行环境);JVM(有完善的硬件架构处理器,寄存器,堆栈;把字节码解释为具体平台上的机器指令)
c)J2SE(Java2 Standard Edition);J2EE(Java2Platform,Enterprise Edition);J2ME(Java 2 Micro Edition)
1.java环境变量配置
a)JAVA_HOME:C:\Program Files\JAVA\jdk1.7
b)PATH:%JAVA_HOME%\bin;
c)CLASSPATH:.\;%JAVA_HOME%\lib
d)检查:cmd查看javac;java;java -version
2.java程序的dos运行
a)javac .java文件->.java文件编译为.class文件(字节码文件JRE可识别运行)
b)java .class文件
3.java程序的运行过程
源程序(编译)->java字节码(可跨平台)->运行在JVM上->JVM可在Windows/Linux/Solaris上运行
4.Eclipse(IDE集成开发环境)
插件安装:Help->Software Update
5.Java的八大基本数据类型
boolean:1位 True/False
byte,char:8位 Unicode码能表示所有字符,转义字符要以'\'开头
short:16位
int,float:32位 单精度对小数精度要求不高
long,double:64位 双精度对小数要求较高
6.Java标识符
不能以数字开头;
可以由数字,字母,下划线,美元符号组成
区分大小写
7.Java关键字
系统保留使用:abstract;final;synchronized;throw;throws;instanceof...
8.常量
常用大写字母表示,final修饰
9.变量
申请不同的数据类型有一个缺省值:int->0;char->null;byte->0;
全局变量(成员变量):类中方法外
局部变量:方法内
10.数据类型转换
自动类型转换(隐式):数据兼容,由低向高转换
byte/char->short->int/float->long/double
强制类型转换(显示):(target-type)value;由高向低转换(数据丢失)
11.运算符
算数运算符:=,-,*,/,%,++,--;int a=1/0 error;double a=1/0->Infinity;x%y=x%|y|
关系运算符:==,!=,>,<,>=,<=
逻辑运算符:&&,||,^,|,&,!
位运算符:~,&,|,^,>>,<<,>>>(右移补0)
赋值运算符:= 两个byte值相加Java会自动将结果提升为int
条件运算符:value = boolean?true value:false value;
12.符号优先级
由低到高:=,?:,||,&&,|,^,&,==/!,大小关系,位操作,+-,%/*,[]/()
13.字符串
a)是一个对象
b)初始化:String str=new String(); str="value";
合并后:String str="value";
c)String对象的常用方法:
char charAt(int index):返回第index个字符(index begin with zero)
String concat(String S):追加字符串S
Boolean equalsIgnoreCase(String s);忽略大小写比较两个字符串
int length();获取字符串长度(字符的个数)
String replace(char old,char new);替换字符串中的字符old为new
Sring substring(int begin)/String substring(int begin,int end)字符串截取方法
Sting trim();除去字符串开头的空白字符
d)StringBuffer
StringBuffer x;x.append(任意数据类型) 追加任意数据类型数据
StringBuffer x;x.insert(int offset,任意数据类型) 在offset位置插入任意数据类型数据
reverse() 颠倒字符串里的字符
14.Java控制语句
顺序语句
条件语句:if-else,switch;
15.循环跳转
for(initialization;contion;iteration){statements;}
while(condition){statements;}
do{statements;}while(condition)
break:跳出所在循环体
continue:跳出本次循环,进行下一次循环
return:方法返回,控制权交还回主调函数
16.数组
a)声明
target-type[] arrayName;
b)创建数组(申请空间)
target-type[] arrayName={element0,element1...};
c)数组是一个对象,初始化三种方式
target-type[] arrayName=new target-type[length];
target-type[] arrayName=new target-type{element0,element1...}
target-type[] arrayName={element0,element1...}
d)二维数组声明
target-type[][] arrayName;
e)创建二维数组(申请空间)
target-type[][] arrayName={{第一行},{第二行},{第三行}...}
f)初始化二维数组
target-type[][] arrayName=new target-type[][]{{第一行},{第二行},{第三行}...}
g)数组对象的操作
复制数组:System.arraycopy(arrayA,offsetA,arrayB,offsetB,counts);复制A到B,从A(B)的下标offsetA(offsetB)个元素开始复制counts个元素
比较数组:boolean equals(arrayA,arrayB);比较两个数组
搜索数组:location(int) binarySearch(array,element);查找element第一次出现的位置
填充数组:Arrays.fill(array,value);为数组array的所有值填充为value
17.面向对象(Object Oriented,OO)
OOA:面向对象分析; OOP:面向对象编程; OOD:面向对象设计
特点:对象唯一性;抽象性;继承;多态;封装
类:属性(静态:成员变量)+行为(动态:成员方法)
由类创造方法时Java自动调用该类的构造函数
方法:修饰符 return-type funcName (parameters){statements};
this:当全局变量与局部变量名相同时,使用this区分
static:静态方法或变量访问时不需要实例化,直接通过类名访问
public修饰:其他类可以访问public修饰的类
protected修饰:自己的类极其子类才能访问
private修饰:只有自己的类才能访问
默认修饰符:变量和方法只能在自己的类及该类同一个包下的类中访问
final修饰:被修饰的变量最多赋一次值
transient/volatile:只修饰非静态的变量
synchronized:只修饰方法
抽象类(声明方法,而去不实现的类)
abstract class className{statements;abstract function;statements...}
抽象类中必须包含至少一个抽象函数,继承的子类必须实现抽象类中的抽象方法
Java API使用
官网下载 CHM格式
18.继承:已经定义的类派生出另外一个类
修饰符 class subClassName extends prarentClassName{statements}
继承具有传递性质:A继承B,B继承C,则A继承C;一个子类只能有一个父类
A继承B;A不能继承B中private修饰的成分,且继承的变量变为private修饰
构造函数明与类名相同,没有返回值,参数可选
子类的引用指向父类时,不能调用子类中新增的成分:
parentClass pc=new subClass();subClass sc=new subClass();pc不能调用subClass里新增的内容
子类通过super关键字调用父类的构造方法
重写:支持多态,根据自身情况灵活定义自己的方法,针对不同类;抽象类的抽象函数必须被其子函数重写;重写要求函数名,
 返回类型,参数列表相同访问修饰符的限制一定要大于被重写方法的访问修饰符(public>protected>default>private)
重载:针对同一个类,在一个类中,方法名相同不同方法
接口:特殊的抽象类,其中的方法时抽象的,一个子类只能继承一个父类,当一个类可以实现多个接口
public interface interfaceName{statements} 接口中不能声明变量,必须具备三个特征:公共性,静态行,最终性
接口常量具备static,public,final等属性,保证实现该接口的所有类都可以访问相同的常量
实现多个接口的条件:实现所有接口的方法的功能;遵循重写规则;保持相同的返回数据类型
内部类:一个类里面的类
19.java初步图形编程AWT(Abstract Windowing Toolkit 抽象窗口工具包)
Frame是一个窗口的父类,AWT程序必须继承这个类
初始化一个窗口时,set系列函数可以进行基本的窗口设置,最后this.setVisiable(true)设置窗口可见
各种组件(Button,TextArea等等)作为AWT的成员变量,在构造函数中通过this.add(组件名)来加载
布局管理:
FlowLayout:从左到右,从上到下居中显示各个组件
BorderLayout:5个区域(East,South,West,North,Center)
this.add(组件,BorderLayout.位置);
GRidLayout:矩形网格,需要指定网格的行数与列数
CardLayout:提供了多种选择组件的方法(first,last,next,previous,show)
Null:是按钮不会成为背景

原创粉丝点击