本帖最后由 小石姐姐 于 2017-12-2 15:07 编辑
Java创始人:詹姆斯高斯林
什么是跨平台?
一次编写,处处运行,平台指的是Windows,Linux.Mac,只要平台安装有相应的JAVA JVM(虚拟机),就可运行
什么是JVM,JDK,JRE?
JVM:JVM(java virtual machine)指的是java虚拟机,跨平台就是靠它
JRE:JRE()包括jvm+java核心类库
JDK:JDK包括jre+java开发工具包,是给java开发人员使用的。
常用dos命令
dir:显示路径下的所有东西,包括文件夹,文件等
Cls:清屏
Cd:改变路径
Cd..:回退一个目录
Exit:退出或者返回
...
Help:查看所有的dos命令。
配置环境变量:
新建
JAVA_HOME=JDK的安装路径(不要到bin下)
找到
PATH变量,在前面加上”%JAVA_HOME%\bin;”
作用是在任何目录下编写java文件都可以在dos下运行,
案例HelloWorld
//定义一个类,类名HelloWorld
public class HelloWorld{
/*编写主(main)方法,在c语言里叫函数,其实都是一个意思,这程序的入口,而且只能只有一个main方法*/
public static void main(String[] args){
//打印输出HelloWorld
System.out.println(“HelloWorld”);
}
}
运行:dos命令到java文件目录下,
javac xxx.java //没有报错且在此目录下生成一个 类名.Class 文件 说明成功
java 类名(不加.Class)
注释
//:单行注释
/**/:多行注释
/***/:文档注释,在eclipse里很有用
关键字
特点:字母全部小写,一般是高亮的颜色
常量
不变的值
特点:常量名全部大写,见名知意
变量
格式:数据类型 变量名=初始化值;
特点:变量名全部小写,见名知意
标识符
作用:给包,类,变量等起名字
包:全部小写。多级用“.”隔开,如:com.itheima.zj
组成规则:下划线_,美元符号$,和unicode:英文大小写,数字(但数字不能开头),汉字 (不推荐使用)
类
特点:单词首字母大写
变量或者方法
一个单词时,全部小写(首字母小写)如:age
多个单词时,第一个单词小写(首字母小写)第二个单词及以后第一个字母大写
如:studentAge
类型转换(boolean 1个字节)
优先级:byte 1个字节,short 2个字节,char 2个字节-->int 4个字节--->long 8个字节--->float 4个字节--->double 8个字节
隐式转换 如:
int a=10;
byte b=20;
a+b就是int类型
强制转换
格式:目标数据类型 变量名=(目标数据类型)(将要转换的数据);
如:
int a=10;
byte b=20;
byte c=(byte)a+b;//输出为30
转义字符
“\n” 换行
安装eclipse:eclipse绿色版
eclipse基本设置
A:行号的显示和隐藏
显示:在代码区域的最左边的空白区域,右键 -- Show Line Numbers即可。
隐藏:把上面的动作再做一次。
B:字体大小及颜色
a:Java代码区域的字体大小和颜色:
window -- Preferences -- General -- Appearance -- Colors And Fonts -- Java -- Java Edit Text Font
b:控制台
window -- Preferences -- General -- Appearance -- Colors And Fonts -- Debug -- Console font
c:其他文件
window -- Preferences -- General -- Appearance -- Colors And Fonts -- Basic -- Text Font
C:窗体给弄乱了,怎么办?
window -- Perspective -- Reset Perspective
D:控制台找不到了,怎么办?
Window--Show View—Console
不用安装,找到eclipse.exe文件双击就可以用。注意,eclipse是用java写的,所以要 安装jre或者jdk.
B:导入项目
在项目区域右键找到import
找到General,展开,并找到
Existing Projects into Workspace
点击next,然后选择你要导入的项目
运行点击代码处空白点击RUN AS 选择java Application即可运行
运算符
+ - * / % ++ --
加法+:
如 int a=4;
Int b=45;
System.out.println(a+b);//结果是49
注意:System.out.println(“HelloWorld”+a);//结果是HelloWorld4
System.out.println(a+“HelloWorld”+b);//结果是4HelloWorld45
*-:
只是做相应的操作
/ 取整操作:
int a=10;
Int b=3;
int c=10.0
System.out.println(a/b);//输出结果是3
System.out.println(c/b);//输出结果是3.33333333333333
%取余操作:
int a=5;
Int b=3;
System.out.println(a%b);//输出结果是2
++:
int a=5;
Int b;
a++;//结果是6
++a;//结果是6
a--;//结果是4
--a;//结果是4
b=a++;//b=5,a=6
b=++a;//b=6,a=6
-- 也是一样的
快捷键:
ctrl+a//全选
Ctrl+s//保存
Ctrl+shift+f//代码格式化
Alt+/ //快捷选出要写的内容
Syso+/ //快速写出System.out.println();
单行
选中内容,ctrl+/, 再来一次取消
多行 选中内容,ctrl+shift+/, ctrl+shift+\
ACLLSE码值
A--->65 a--->97
0--->48
逻辑运算符
& | && || ! ^
&:且的意思,符号两边都可执行 左右两边都为真是返回真
&&:也是且的意思,但是如果左边不为真,就不判断右边 左右两边都为真是返回真
|:或的意思,两边都执行,左边或者右边只要有一个为真就返回真
||: 或的意思,但是如果左边为真,就不判断右边 左边或者右边只要有一个为真就返回真
^: 异或 相同为false,不同为true
!: 非 如 !(4>2)---true
!!(4>2)---false
关系运算符:> < != == <= >=
!=:不等于
扩展运算符:
+=,-=...
Int a=10;
byte b=1;
b+=a;<----->b=(byte)(b+a);
隐含了强制转换
三元运算符
格式: (关系表达式)?(表达式1):(表达式2);
注意:%:取余,结果的正负号以%左边为准,与右边符号无关
取模(java中没有此运算)结果的正负号以%右边为准,与左边符号无关
键盘录入类:
//导入包
import java.util.Scanner;
//创建键盘录入对象
Scanner sc=new Scanner(System.in);
//获取键盘键入值
Int a=nextInt();//int类型的
顺序结构:从上到下
If语句:
格式 if(关系表达式){
执行语句;
}else if(关系表达式){
执行语句;
}else if(关系表达式){
执行语句;
}
...
else{
执行语句;
}
For循环语句:
格式 如for(int i=0;i<=10;i++){
执行语句;
}
switch语句:
格式 如 switch(表达式){
Case 值1:
语句体;
break;
Case 值2:
语句体;
break;//结束switch循环
....
default: //如果前面case没有值相对应,就会执行default语句,如 //果有对应了就不执行default语句了。
语句体;
break;
}
While语句:
基本格式 如 while(判断条件语句) {
循环体语句;
}
扩展格式 如 int i=0;
While(i<10){
syso(“helloword”);
i++;
}
do...while语句:
基本格式 如:
do{
循环体语句;
}while(判断条件语句);
扩展格式 如:
int i=0;
do{
Syso(“helloWorld”);
i++;
}while(i<100);
break的使用场景
switch语句中使用break;跳出switch语句
For循环中使用break,结束for循环
注意:break,continue不与switch语句和for语句使用时没有意义的,会报错。
continue的使用场景
for循环里,作用是结束本次循环,在它后面的语句本次不执行,直接到下次循环,继续下次循环。
随机数类 Random
//创建随机数对象
Random r=new Random();
//获取随机数值
int i=r.nextIn(10);//代表在[0,10)中随机取数
一维数组初始化
数据类型[] 数组名=new 数据类型[长度];//动态,适用于只知道数组长度
数据类型[] 数组名=new 数据类型[]{值1,值2,值3,.......};简单写可以写成数据类型[] 数 组名={值1,值2,值3,.......};
二维数组类似
数据类型[][] 数组名=new 数据类型[m][n];//动态,适用于只知道数组长度
数据类型[][] 数组名=new 数据类型[][]{{值1,值2},{值3},.......};简单写可以
写成数据类型[] 数 组名={{值1,值2},{值3},.......};
数组索引越界异常 ArrayIndexOutOfBoundsException
原因:访问了不存在的索引
空指针异常 NullPointerException
如: arr=null;
Syso(arr[1]);
二维数组:
Int[][] arr=new int[3][];这样也是可以的,但是int[3]必须要。
可以创建长度为0的数组
如
Int[] arry=new int[0];
Int[] arry={};
注意:
数组名存放的是地址,二维数组数组名存放的是这个二维数组的长度,也就是里面一维数组的个数,如有arr[m][n] arr[0]存放的是arr这个二维数组里第一个一维数组的地址。
数组
Arrays.toString(arr);//打印arr里的元素 如:[1,2,3,5,6]
方法:
文档注释
/**
* 定一个加法方法
* @param a 输入的第一个整数
* @param b 输入的第二个整数
* @return 返回a与b相加的值
*/
public static int add( int a,int b){
int sum=a+b;
return sum;
}
方法重载:方法名相同,参数列表不同:
数据类型不同
参数个数不同
如:
//int
public static int com(int a,int b){
System.out.println("int");
return a+b;
}
//double
public static boolean com(double a,double b){
System.out.println("boolean");
return a==b;
}
形参与实参的区别:
形参如果是基本数据类型,形参的改变不影响实参的值
内存:
xxx.class文件 方法放在方法区
new 的在堆内存
变量 在栈内存 |
|