java 的三大技术框架
JAVAEE (java 2 Platform Enterprise Edition)企业版
该体系中包含的技术如Servlet,Jsp等
JAVASE(Java 2 Platform Standard Edition)标准版
java基础阶段的主要内容,以java基础为核心。
JAVAME(Java 2 Platform Micro Edition)小型版
JAVAME主要是应用于电子产品嵌入式开发,目前andriod不使用该技术
JVM
跨平台性是java的最大特点之一,jva就是虚拟机,主要是将java程序在不同的平台上进行解释执行
jvm在不停的平台上的版本不同但是功能大致相同
JRE和JDK
JRE是java虚拟机+Environment运行环境
JDK是java开发工具包,包含java虚拟机+开发包+运行环境
使用JDK完成开发,交给JRE去运行
必须熟练的记忆,核心类库,开发工具
java学习的注意事项:
1 java严格区分大小写
2 一个java源文件可以定义多个java类,但其中最多只能有一个类被定义为public类
3 若源文件中包含了public类 源文件必须和public类同名
4 一个源文件中包含了N个java类,编译后会生成N份字节码文件,其对应的类名就是文件名
5 一个java源文件只定义一个类,不同的类使用不同的源文件定义
java 中的常量与变量
常量:在内存中常驻的固定不变的值,生命周期随着类或者程序的结束而结束。
变量:占据着内存的某个区域;该区域有自己的名称(变量名)和类型(数据类型);
该区域的数据可以在同一类型范围内不断变化;
为什么定义变量:
1 用来不断的存放同一类型的常量,并可以重复使用;
2 作用范围 在变量定义开始到它的代码块结束,统一范围内不允许多个局部变量同名
数据类型 变量名=初始化值;
局部变量:不是声明在类体括号里的变量
局部变量没有默认初始化值,使用前必须初始化,作用域是从定义开始到定义它的代码块结束。
成员变量(全局变量)在方法体外,类体内声明的变量,又称为字段或全局变量(java中没有全局变量,由于java是面向对象语言,所有的变量都是类的成员)
成员变量的作用域实在整个类中;
注意成员变量和局部变量的区别
区别局部变量没有默认初始化值,使用前必须初始化,作用域是从定义开始到定义它的代码块结束,成员变量定义在类体中作用范围在整个类中,有默认初始值为0.
//成员变量
public class Demo2 {
int j;//成员变量 可以不被初始化
public static void main(String[] args) {
int i=9;//局部变量 必须初始化
System.out.println(i);
System.out.println(j);
}}
注意全局变量或者成员变量要用static来修饰 输出结果为 9 0
基本数据类型:总共有8中
整数型:byte(字节型)、short(短整型)、int(整形)、 long(长整型)
小数型:float(单精度浮点型)、double(双精度浮点型)
字符型:char(字符型)
布尔型:boolean(布尔型)
Java 语言中为了更加方便国际化,使用Unicode 字符集作为默认的字符集
基本字符型向上转换:byte、short、char----->int----->long----->float------>double
在进行计算的时候,java会进行自动向高级转化,同级不进行转化数据类型
boolean类型不可以转化为其他类型
强制类型转化:
long L=222L;
int i= (int) L;//必须强制转化后才能赋值
小转大,自动转化,自动类型转换也叫隐式类型转换
大转小,强转!强制类型转换也叫显示类型转换
运算符的注意事项:
在Java中不可以写成3
“&”和“&&”的区别:单与时,左边无论真假,右边都进行运算;双与时,如果左边为真,右边参与运算,如果左边为假,那么右边不参与运算。
“|”和“||”的区别同理,双或时,左边为真,右边不参与运算。
“ ^ ”与“|”不同之处是:当左右都为true时,"^"结果为false。
三目运算符:
x?y:z;
x为boolean类型,先计算x的值,为ture时进入y表达式,否则就执行z表达式。
流程控制语句:
顺序结构:代码里面没有流程控制语句,从开头第一句一直执行下去,最基本的结构
分支结构:加入判断条件,进行选择的语句,如if,switch语句
if(条件表达式){执行语句};
if(条件表达式){执行语句}else{执行语句}
if (条件表达式){执行语句}else if(条件表达式){执行语句}else{执行语句}
switch(表达式){
case 表达式结果值1:
执行语句;
break;
case 表达式结果值2:
执行语句;
break;
case 表达式结果值3:
执行语句;
break;
defaualt://default语句在程序最终的时候执行,如果放在开头则不论switch结果都从头执行到最后一句直到遇到break才结束。
执行语句;
break;
}
public class Test9910 {
static int j;//成员变量 必须初始化
public static void main(String[] args) {
int a = 7,b = 3;
switch(a-b)
{
case 3://表达式可能的值;
{
System.out.println("33!");
}
break;
case 4:
{
System.out.println("44!");
}
break;
default://都没有执行则 执行该语句!
System.out.println("没有匹配到合适的");
}
}
}
循环结构:程序依据某个特定的条件进行反复运行,直到条件不满足时,跳出运行输出结果,常用的方法有:for,
while,do ...while
for循环
for(初始表达式1;循环条件2;循环后的操作表达式3){
执行语句(4);
}
执行顺序:(1) → (2) → (4) → (3) → (2) → (4) → (3)
while(条件表达式){
执行语句
}
do{
执行语句;
}
while(条件表达式){
执行语句;
}
while和for可以互换,但是却别在于for循环定义的变量在循环结束就释放,while定义的循环变量在
循环结束后还能继续使用。
控制循环结构:break 终止该层循环和continue 跳过该层循环语句
1 这两个语句离开了应用范围是没有意义的
2 这两个语句后面跳过本次循环,继续下次循环
3 continue的语句是跳过本次循环,继续下次循环
4 标签的出现,可以让这两个句子作用于指定的循环
方法和数组
方法(Method)是一组为了实现特定功能的代码块的集合
方法在功能上主要有2个:1 结构化代码 将代码按照功能进行组织使代码结构比较清晰,容易阅读和修改,具有可维护性2 减少代码的重复性 方法实现一个完整的功能,可以被多次调用而不必重复书写
书写方法的时候注意
1 逻辑严谨 方法的功能完整,考虑全面,并对所遇到的情况做出适当处理
2 通用性强 方法是一种功能的集合,应当注重方法的复用性,将程序写的更加大众化
方法:一段可以重复使用的代码段,程序中可以重复使用的代码集合
[修饰符] 返回值类型 方法名([参数类型 形式参数1,参数类型 形式参数2...]){
执行语句;
return 返回值;//void没有返回值可以省略
}
对于方法 只要有一个参数不同都是不同的方法
访问控制符(修饰符):public、protected、无访问控制符、private
形式参数:在方法被调用时用于接收外界输入的数据
实参:调用方法时用于接收外界输入的数据
返回值:方法在执行完毕后返还给调用它的环境的数据
返回值类型:事先约定的返回值的数据类型,void为无返回值
方法签名:方法名和方法的参数列表()区别方法的关键是看参数列表
java中调用方法的方式:对象名.方法名(实参列表);
方法的特点:
1 可以独立运行某个功能
2 他必须定义在一个类里
3 只有调用才执行,谁调用返回谁
4 可以重复被调用
5 方法结束后方法里的对象失去引用
public class Demo{
public static void main(String [] args){
int i=2;
System.out.println("输出:"+luck(i));
}
public static String luck(int i){
switch(i){
case 1 :
return "boy1";
case 2 :
return "boy2";
case 3 :
return "boy3";
default:
return "No Find!";
}
}
}
方法的重载
重载:在同一个类中允许存在一个以上的同名方法,它要他们的参数个数、参数类型或者参数顺序不同,即可成为方法的重载
作用:重载可以屏蔽一个对象的同一类方法由于不同的参数所造成的差异
特点:与返回值类型无关,方法同名,只是参数列表不同
public static void a(int i){}
public static void a(int i,string b){}
public static void a(int b,int i){}
方法的重载:方法名相同,但是参数列表不一致。和方法的覆盖(复写)不同,方法的覆盖
必须方法名和参数列表一样,注意方法的重载和方法的复写差异!
方法的可变参数
从java5开始 方法开始支持可变参数
方法中可以接受的参数不再是固定个数,而是随着具体要求的传递的多少决定的
定义格式:
返回值类型方法名(参数类型...形式参数){}
特点:
智能出现在参数列表的最后;
位于变量类型和变量名之间,前后有无空格都可以
调用可变参数的方法时,编译器为该可变参数银汉创建了一个数组,在方法体重以数组的形式
访问可变参数
import java.util.Arrays;
public class Test9910 {
public static void main(String[] args) {
int []age = {1,2,3,69,36,636,459};
show(age);
}
public static void show(int...a){//此时这里写的就是可变参数,和数组的作用一样!
//把数组给打印出来!
System.out.println(Arrays.toString(a));
}
}