java 1995年 sun 2009年 ORACLEjava
java SEwindows
java ME数组
java EEdom
JVM:Java Virtual Machine java虚拟机工具
流程:以.java为后缀的源文件,默认不能执行 —— 编译器,使用javac命令 —— 以.class为后缀的二进制字节码文件,该文件不受平台限制 —— 解释器,使用java命令, JVM中包含解释器 —— 最终的java程序开发工具
JDK:Java Development Kit java开发工具包spa
JRE:Java Runtime Environment java运行环境命令行
JDK包含JRE,JRE包含JVM调试
访问指示符(public protected private)放在类内定义的数据成员或方法的最前面对象
访问指示符只控制着对这个特殊定义的访问
与C++不一样,在C++中访问指示符控制着其后面的全部定义,直到又一个访问指示符出现
不指定访问指示符就是默认的访问,默认的访问没有关键字,一般称为“友好的(friendly)”访问,当前包内的其余全部类(不论它使用什么访问指示符)都能访问“友好的”成员,包外的全部类不能访问
因为一个编译单元(一个文件)只能属于一个包,因此一个编译单元内的全部类相互间都是自动“友好”的;友好元素拥有“包访问”权限
由于友好访问,咱们将相关的类都写在一个包里,这些类之间就可以方便地相互访问
类控制着哪些代码可以访问本身的成员
万物皆对象,只要是客观存在的事物均可以称为对象
面向对象是指更关注具体事物的信息
类是模子,用来肯定对象将会有的特征(属性)和行为(方法)
类是对象的类型,是具备相同属性和方法的一组对象的集合
属性——对象拥有的各类特征
每一个对象的每一个属性都有特定值
方法——对象执行的操做
windows环境下java开发环境的搭建
第一步 安装JDK 不一样平台、不一样环境JDK安装文件不一样,windows64位和windows32位也是不同的,默认安装到C盘,C盘里面有java文件夹,java文件夹里面有jdk1.7.0_13文件夹,jdk1.7.0_13文件夹里面有bin文件夹,bin文件夹里面都是.exe为后缀的可执行文件,这些可执行文件中就有javac.exe和java.exe,jdk1.7.0_13文件夹里面还有lib文件夹,lib文件夹里面有java开发中须要用的类库文件,都是以.jar为后缀的
第二步 配置环境变量 JAVA_HOME 配置JDK安装路径 Path 配置JDK命令文件的位置(bin文件夹的路径) CLASSPATH 配置类库文件的位置(lib文件夹的路径)
1.右键“计算机”——选择“属性”——打开之后,选择“高级系统设置”——选择“系统属性”弹窗的“高级”,再选择“环境变量”——在“系统变量”的下面选择“新建”——在弹窗的“变量名”中填“JAVA_HOME”,在“变量值”中填jdk1.7.0_13文件夹的路径
2.“系统变量”中默认就有Path变量,选中Path变量,再选择“系统变量”下面的“编辑”,在已有的“变量值”最前面添加bin文件夹的路径而且用分号隔开
3. 新建CLASSPATH变量,“变量值”中先写.号再写分号最后才填入ib文件夹的路径,.号表明当前路径,分号把路径名隔开
验证 在命令行中输入java按回车和输入javac按回车后都有命令提示就说明成功了
让windows显示文件拓展名,双击“计算机”,在菜单栏中选择“工具”,再选择“文件夹选项”,在“文件夹选项”弹窗中选择“查看”选项卡,在“高级设置”中去掉“隐藏已知文件类型的拓展名”选项前面的对勾再选择最下面的“肯定”
在命令行中输入E:可切换到E盘的根目录,不区分大小写,再输入dir可查看目录中的内容,使用javac XXX.java能够编译java源文件,这是在XXX.java的同目录下就会出现XXX.class文件,点开XXX.class是乱码,不能执行,使用java XXX可执行这个XXX.class文件,注意“java XXX”不要输入文件后缀
使用Eclipse开发java程序
1. 建立java项目:在Package Explorer里右键,选择New,选择Java Project
2. 建立程序包:右键src,选择New,选择Package,包名通常是域名的反向
3. 编写java源程序:右键包,选择New,选择class,在弹窗中填类的名称(不要写.java或.class后缀),这里的类名必定要和文件中定义的类名同样
4. 运行java程序:在文件的空白地方右键,选择Run As,选择Java Application
全部的java程序都以类为组织单元
public class 类名 {
…… ……
}
class是关键字
类名首字母必须大写
建立对象:
类名 对象名 = new 类名();
把java源文件中的信息放在内存中,此时这些信息的集合就是对象,这个过程就是实例化
对象名.属性 可使用该对象的属性或者给该属性赋值
对象名.方法名() 能够调用该对象的方法
由于咱们会把类实例化变成对象进行操做,因此属性也被称为实例变量
类是对象的类型
由于默认浮点数是double型,因此给float型变量赋值时需在后面加f
把一个类实例化变成对象
具备特殊用途的词被称为关键字,java关键字区分大小写
java标识符是给java程序中包、类、方法、变量等命名的符号
标识符能够由字母、数字、下划线、美圆符号组成,但不能包含@、%、空格等其余特殊字符,不能以数字开头
标识符不能是Java关键字和保留字(Java预留的关键字,之后的升级版本中可能做为关键字),但能够包含关键字和预留字
标识符区分大小写
变量至关于容器,Java中经过三个元素来描述变量:变量类型、变量名和变量值
在Java程序中,能够根据所要保存的数据的格式将其保存在指定类型的变量空间中,并能经过变量名迅速定位
使用"+"进行字符串拼接
给变量从新赋值时,不用在变量名前写变量类型
变量名由多个单词组成时,用驼峰
Java语言是一种强类型语言
在Java中存储的数据都是有类型的,必须在编译时就肯定其类型
在Java中,基本数据类型变量存的是数据自己,而引用数据类型变量存的是保存数据的空间地址
为float变量赋值时在数值后添加字母f
为char变量赋值时使用单引号将值括起来
String是引用数据类型
Java中的变量须要先声明后使用
一次只能给变量赋一个值,但能够屡次赋值
main方法中定义的变量必须先赋值才能输出
不建议在程序中使用中文变量名
自动类型转换:
Java程序中,不一样的基本数据类型之间常常须要相互转换,例如:
int a = 82;
double b = a;
SyStem.out.println(b);代码中int型变量能够直接为double型变量赋值,结果为82.0
要求:
目标类型能兼容源类型,double类型能兼容int类型,char类型不能兼容int类型
目标类型大于源类型,double类型长度为8字节,int类型长度为4字节,所以double类型的变量里能够存放int类型的数据
强制类型转换:
语法:(数据类型)数据 或 (数据类型)变量名
强制类型转换可能会形成数据丢失,double类型强转成int类型时会直接裁掉小数位,而不是四舍五入
Java常量:
值被设定后,在程序运行中不容许被改变
语法:final 类型 常量名 = 值; 常量名通常是全大写
int a=5;int b=++a;这时a、b都是6,先让a自增而后再赋值
int a=5;int b=a++;这时a为6,b为5,先赋值再让a自增
自增、自减运算符只能和变量名搭配,不能直接搭配数值或常量
> < >= <=只支持两侧都是数值类型
^是异或的意思,当a和b有且仅有一个为true时a^b才返回true
equals()判断字符串的内容是否相同
String weather = "good";
weather.equals("bad") 返回false
当须要对选项进行等值判断时,使用switch语句
switch后面小括号中表达式的值必须是整型或字符型
case后面的值能够是常量或常量表达式,不能是变量或变量表达式
case匹配后,执行匹配块里的代码,若是没有碰见break,会继续执行下一个case块里的代码(default块里的代码也执行),直到碰见break或switch语句块结束
while(){
}先判断再执行
do{
}while()先执行再判断
for(循环变量初始化;循环条件;循环变量变化){
}
循环变量初始化在整个循环中只执行一次
for关键字后面括号里的三个表达式必须用分号隔开,三个表达式能够省略,但分号不能省略
若循环变量初始化和循环变量变化中有多个循环变量可使用逗号分隔
循环条件中可使用逻辑运算符组合的表达式来表示复杂的判断条件,但要注意逻辑运算符的优先级
break:退出循环
continue:跳过本次循环剩下的代码,直接执行下一次循环
for循环还能够写成:
for(数据类型 元素变量 : 遍历对象){
}
使用Scanner工具类来获取用户输入的信息,它在java.util包中
导入包的操做:import java.util.Scanner放在package com.imooc下面
导入包以后要建立Scanner对象,才能使用Scanner工具类暴露出来的方法
类是对象的类型,Scanner input = new Scanner(System.in);
保存输入的信息:int a = input.nextInt();
调试时按F6是按步执行
数组按顺序存放多个类型相同的数据,如int[] arr = {1,2,3};等价于int[] arr = new int[]{1,2,3};其中new int后面的[]内必须为空,不能指定数组长度
声明数组:数据类型[] 数组名;或者 数据类型 数组名[];
给数组分配空间:指定数组中最多存放多少个数据,数组名 = new 数据类型[数组长度];
也能够在声明数组的同时为它分配空间:int[] arr = new int[5];
赋值:arr[0] = 99;
java.util包中的Arrays工具类提供一些直接操做数组的方法,如:
Arrays.sort(数组名);可将数组按升序排序,还能把数组中的单词按照首字母升序排序
Arrays.toString(数组名);可将数组转化为字符串,转化后元素之间用逗号和空格隔开
声明二维数组并分配空间:数据类型[][] 数组名 = new 数据类型[行数][列数];
或者 数据类型[][] 数组名;数组名 = new 数据类型[行数][列数];
赋值:数组名[行索引][列索引] = 值;
也能够在声明数组的同时为其赋值:数据类型[][] 数组名 = {{值00,值01……},{值10,值11……}}
其中,数组名.length指的是二维数组中含有一维数组的个数,数组名[行索引].length指的是二维数组第(行索引+1)行含有的数据的个数
二维数组中包含的子数组也能够长度不一样,声明二维数组时能够先指定行数,而后再为每行指定列数,如:
int[][] arr = new int[3][];
为第一行分配两列:arr[0] = new int[2];
定义方法的语法:
访问指示符 返回值类型 方法名(参数列表){
方法体
}
参数列表中每一个参数由参数类型和参数名组成,以空格隔开
调用方法:先建立类的对象,经过 对象名.方法名() 来调用方法
若是方法的返回值类型是void,则方法中不能使用return来返回值
方法的返回值最多只能有一个,也能够包含表达式,如return arr.length;
调用带参数的方法时,必须保证明参的数量、类型、顺序与形参一一对应,并且实参不用指定数据类型
String是引用数据类型
若是同一类中包含两个或两个以上方法名相同、方法参数的个数、顺序或类型不一样的方法,则称为方法的重载,与方法的访问指示符和返回值类型无关
当调用被重载的方法时,java会根据参数的个数和类型来判断应该调用哪一个重载方法,参数彻底匹配的方法将被调用
int num = (int)(Math.random()*100);生成1-100的随机整数,其中Math.random()生成0-1之间的浮点数
for(int i=arr.length-1;i>=0;i--){
System.out.printlln(arr[i]);
}