本帖最后由 小石姐姐 于 2017-12-1 18:55 编辑
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//定义一个类,类名HelloWorldpublic class HelloWorld{/*编写主(main)方法,在c语言里叫函数,其实都是一个意思,这程序的入口,而且只能只有一个main方法*/public static void main(String[] args){//打印输出HelloWorldSystem.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 的在堆内存 变量 在栈内存 |
|