Java1关键字/数据类型/标识符/运算符,if/switch/for/while,数组,属性/方法,可变参数,构造器,this/super/继承,抽象,初始化,接口,多态,权限修饰符

Posted 码农编程录

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java1关键字/数据类型/标识符/运算符,if/switch/for/while,数组,属性/方法,可变参数,构造器,this/super/继承,抽象,初始化,接口,多态,权限修饰符相关的知识,希望对你有一定的参考价值。

文章目录


1.jdk安装:JAVA_HOME

如下链接:https://pan.baidu.com/s/11Uw-bnuFmITCWU5Ne5z_sw 提取码:dgtr。双击如下jdk1.8安装,安装到D:\\development\\jdk1.8,弹出新框jre安装到D:\\development\\jdk1.8\\jre1.8

此电脑右击属性(可查看计算机多少位)-高级系统设置-环境变量,在下面框的系统环境变量新建。

如下选中path系统变量点编辑再点编辑文本,将上面路径添加进去再加bin以分号结束,取变量。

win下cmd查看如下。

2.idea安装:全局settings

idea软件链接:https://pan.baidu.com/s/1T9O7QiGyNEMoT-xehDnNEg 提取码:p5yd。安装到D:\\development,自动生成IntelliJ IDEA 2018.1文件夹

JetbrainsCrack-2.7..jar包(链接:https://pan.baidu.com/s/1pQTyb7OT0S4DPPwPnA9HDQ 提取码:igri)复制到D:\\development\\IntelliJ IDEA 2018.1\\bin(右击idea图标点属性),在bin目录下找到两个idea…vmoptions文件最后一行都添加-javaagent:D:\\development\\IntelliJ IDEA 2018.1\\bin\\JetbrainsCrack-2.7-release-str.jar,双击idea软件如下复制进去

ThisCrackLicenseId-
"licenseId":"ThisCrackLicenseId",
"licenseeName":"Gail_Hu",
"assigneeName":"",
"assigneeEmail":"Gail_Hu@126.com",
"licenseRestriction":"For This Crack, Only Test! Please support genuine!!!",
"checkConcurrentUse":false,
"products":[
"code":"II","paidUpTo":"9999-12-31",
"code":"DM","paidUpTo":"9999-12-31",
"code":"AC","paidUpTo":"9999-12-31",
"code":"RS0","paidUpTo":"9999-12-31",
"code":"WS","paidUpTo":"9999-12-31",
"code":"DPN","paidUpTo":"9999-12-31",
"code":"RC","paidUpTo":"9999-12-31",
"code":"PS","paidUpTo":"9999-12-31",
"code":"DC","paidUpTo":"9999-12-31",
"code":"RM","paidUpTo":"9999-12-31",
"code":"CL","paidUpTo":"9999-12-31",
"code":"PC","paidUpTo":"9999-12-31"
],
"hash":"2911276/0",
"gracePeriodDays":7,
"autoProlongated":false

在idea软件打开界面右下角点击Configure-Project Defaults-Project Structure 如下点New配置JDK。

如下点Configure-settings,Editor-General如下点击apply。

3.关键字/常量/变量:javac

//HelloWorld.java,类名和文件名要同
public class HelloWorld 
	public static void main(String[] args) 
		System.out.println("HelloWorld");
	

1.为什么要编译:代码最终是要交给JVM去执行的,而我们写的代码JVM不认识,所以我们必须要将我们自己写的代码翻译成JVM他认识的代码,这样他才能够去执行。 这个翻译的过程其实就是编译。

2.编译使用的工具:编译要使用jdk的bin目录下的工具javac.exe去完成。

3.编译的步骤:将HelloWorld.java移动到jdk的bin目录(因为我们需要使用Jdk的bin目录中的javac.exe进行编译)。在jdk的bin目录打开控制台,然后输入命令javac HelloWorld.java(编译完之后,会生成一个.class文件,这个.class文件就是将来要交给JVM执行的文件),再输入命令java HelloWorld(运行的真正是.class文件,但是运行的时候不要带扩展名)。

4.配置环境变量的目的:为了可以在任何目录下使用jdk的bin目录下的工具(javac.exe, java.exe),在第一章已配置好,重新打开dos窗口。在Java内置好的,被Java赋予特殊含义的单词就是关键字。关键字所有字母都小写且在高级的编辑器中会变色,如下java关键字。


所有常量中,空常量null不能直接输出,其他的常量都是可以直接使用输出语句进行输出的。

变量定义格式:数据类型 变量名 = 初始值;。如下short取值范围-32768到32767,int是-21亿多到21亿多bsil fd cb

4.数据类型/标识符/类型转换:小大自

标识符就是我们自己给变量, 给方法, 给类…所起的名字。标识符起名软性规定如下:

硬性规定如下:记住字下美+字下美数:如下看红字前面即=号前面。


如下100亿超出int范围,所以要加L,并不是错误。


如下bsil fd多了一个c。

如下打印出结果为7。


如下报错:不兼容的类型: 从int转换到byte会有损失。

5.算术/赋值/自增运算符:前先自加1,48/65/97,ascii,转义符

/*
 /:做除法。如果两个整数相除,结果只取整数部分。如果想要得到小数,那么只需要把除法两边任意一个改成小数
 
 %:取余(模)运算。获取两个数相除之后的余数部分。可以判断一个数能否被另一个数整除,如果一个数可以被另一个数整除,那么取余的结果就是0
*/
public class Demo01Operator 
	public static void main(String[] args) 
		//定义两个变量
		int a = 5;
		int b = 3;
		// /:做除法
		System.out.println(a / b);//1
		
		//得到小数,只需要把除法两边任意一个数改成小数,imt自动类型转换double
		//System.out.println(5 / 3.0);//1.6666666666667
		
		//%:取余(模运算)【获取a和b相除之后的余数部分】
		System.out.println(a % b);//2
		
		//判断653252能否被3整除,看结果是不是为0
		System.out.println(653253 % 3);		
	

/*
	+号多种用途:
		1. 如果对数值相加,起到的就是普通的数学中的加法运算。
		2. 如果是字符运算,会先查询ASCII码表,将字符转成数字,然后再进行运算。
		3. 如果加号只要有一个是字符串,那么此时就是在对字符串相加。
		   如果是对字符串相加,加号起到的作用就是拼接(连接)
		   任何类型只要和字符串相加,结果都是字符串类型。		
		
	ASCII码表是数字和字符的对应关系表
		'a'	->	97
		'A'	->	65 中间
		'0'	->	48
*/
public class Demo02Operator 
	public static void main(String[] args) 
		int a = 3;
		int b = 4;
		System.out.println(a + b);//7
		
		//定义两个字符,char转int运算
		char c1 = 'a';//97
		char c2 = '0';//48
		System.out.println(c1 + c2);//145
		
		//字符串相加,运算从左往后
		System.out.println("HelloWorld" + a);//HelloWorld3
		System.out.println("HelloWorld" + a + b);//HelloWorld34
		System.out.println(a + b + "HelloWorld");//7HelloWorld
	

“A”:只有一个字符的字符串。ASCII控制字符前32个:不可打印,用于控制外设。如下32-127可打印,先看字符这一列:




/*
	赋值运算符
		基本的赋值运算符
			=:将右边的值交给左边的变量保存。
		扩展的赋值运算符
			+=,-=,*=,/=,%=
			作用:先求出运算符两边操作的结果,然后把这个结果赋值给左边的变量。
			举例:
			m += n:先求出m和n相加的结果,然后把这个结果赋值给左边的变量m。 运算结果相当于: m = m + n
			m *= n:先求出m和n相乘的结果,然后把这个结果赋值给左边的变量m。 运算结果相当于: m = m * n
			注意:
				扩展的赋值运算符中蕴含了强制类型转换的功能。
*/
public class Demo03Operator
	public static void main(String[] args) 		
		short s = 10;
		//使用+=符号进行运算  m+=n 运算结果相当于 m = m + n;
		s += 3; //蕴含了强制类型转换或写成s = (short)(s + 3); //不加(short)报错为int转short有损失	
		System.out.println("s:" + s); //13
	

如果++运算符单独使用,++放在变量前和变量后没有任何区别,都是将变量本身的值加1,如果参与其他操作,是有区别的。前先加1,后先用1次


如上解释如下:

public class Demo05Operator 
	public static void main(String[] args) 
		int x = 4; //6
		int y = (x++) + (++x) + (x * 10);
		//	70  = 4 (运算完变成了5) +  6  +  60
		System.out.println("x:" + x);//6
		System.out.println("y:" + y);//70
	







j++看为一整体。

如下原始4个都没有报错。

6.关系/逻辑/三元运算符:&&短路

1.Create New Project-选择最下面的Empty Project,项目/模块/包/类。

2.如下将光标放在External Libraries上再New。




3.如下新建包,包名(所有字母小写)是域名(网址)的倒叙,包中圆点就是分隔文件夹。



如果编译出现java无效发行版9,则File->Project Structure,将Modules和project菜单中Language level改为8。

File-Close Project。删除模块在idea中右击remove了还要到计算机里手动删除。模块导入:先手动将模块文件夹复制到计算机项目文件夹下,再进行Project Structure。

选中src右击新建Package命名为com.itheima.demo02,选中demo02右击新建类。

与:有0为0或:有1为1异或:同0

/*
    && 和 &的区别
    相同点:运算结果相同。都是有false则结果是false。

    不同点:
        & 不管左边是true还是false,都会去计算右边
        && 如果左边是false,那么就不去计算右边的。 因为&&是有false则结果是false,左边是false,不管右边是啥,结果肯定是false。这种行为叫做短路行为。

    |也可以写成两个||
        ||同样也是具有短路行为的,如果左边是true,那么就不去计算右边了。 因为||是有true则true。
*/

package com.itheima.demo02;
/*
    三元运算符
    作用:可以实现对结果进行二选一的操作。
    格式:
        布尔表达式 ? 值1 : 值2
    执行流程:
        1. 先判断布尔表达式的结果是true还是false。
        2. 如果布尔表达式是true,那么整个三元运算符式子的结果就是值1.
           如果布尔表达式是false,那么整个三元运算符式子的结果就是值2
    注意:
        三元运算符不能单独出现,要么用一个变量接受一下三元运算符的结果,要么直接使用【比如直接输出】
    要求:
        定义两个变量,获取这两个变量中的最大值
*/
public class Demo04Operator 
    public static void main(String[] args) 
        //定义两个变量
        int a = 10;
        int b = 20;
        //使用三元运算符求出结果
        int max = a > b ? a : b;
        //输出max
        System.out.println("max:" + max); //20
    

package com.itheima.demo02;
/*
    需求:动物园里有两只老虎,已知两只老虎的体重分别为180kg、200kg,请用程序实现判断两只老虎的体重是否相同。
    思路:
        1. 定义两个变量,表示两只老虎的体重
        2. 使用三元运算符比较这两个变量是否相同,并得到结果.
 */
public class Demo05OperatorTest 
    public static void main(String[] args) 
        //1. 定义两个变量,表示两只老虎的体重
        int weightOne = 180;
        int weightTwo = 200;

        //2. 使用三元运算符比较这两个变量是否相同,并得到结果.
        //boolean flag = weightOne == weightTwo ? true : false;
        //下面写法更简单,==本身结果为true/false
        boolean flag = weightOne == weightTwo;
        System.out.println(flag);
    

package com.itheima.demo03;
/*
    使用Scanner键盘录入整数,步骤【背下来,不需要理解】:
        1. 导包
            import 包名.类名;
            import java.util.Scanner;
            注意:导包操作要写在package和class之间

        2. 创建对象【new出来的都是对象】
            数据类型 对象名 = new 数据类型(...);
            Scanner sc = new Scanner(System.in);

        3. 调用方法,键盘录入整数
            对象名.方法名(...);
            int a = sc.nextInt(); //sc.nextInt()在键盘录入整数,然后把录入的这个数字赋值给了变量a
 */
import java.util.Scanner; //导包

public class Demo02Scanner 
    public static void main(String[] args) 
        //创建对象
        Scanner sc = new Scanner(System.in);
        //在键盘录入之前该出提示
        System.out.println("请你键盘录入一个整数");
        //调用方法,键盘录入整数
        int a = sc.nextInt();
        System.out.println(a);
    

如下rt.jar在lib文件夹里。






public class HelloWorld
    public static void main(String[] args) 
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入一个数字:");
        int a = sc.nextInt();
        
        System.out.println("请输入你要进行的运算符号(+,-,*,/)“:");
        char b = sc.next().charAt(0);
        
        System.out.println("请在输入一个数:");
        int c = sc.nextInt();
        
        switch (b)
            case '+':
                int sumNum = a + c;
                System.out.println("计算的结果是:" + sumNum);
                break;
            case '-':
                int subNum = a - c;
                System.out.println("计算的结果是:" + subNum);
                break;
            case '*':
                int multNum = a * c;
                System.out.println("计算的结果是:" + multNum);
                break;
            case '/':
                if(c == 0)
                    System.out.println("被除数不能为0");//判断被除数为0的情况
                else 
                    float diviNum= (float)(a / c);
                    System.out.println("计算的结果为:" + diviNum);
                
                break;
            default:
                System.out.println("对不起输入有误!");//没有按照正确的格式输入
                break;
        
    

7.if/switch/for/while/do.while:没有break


先匹配case,但如下都没匹配上,所以先default。

如下1月和2月都属于冬季。

如下发生穿透。

如下case 0不执行。

变量不能用for循环。













8.一维数组:int[ ] a =

8.1 数组的内存分析(静态):数组名=首地址








8.2 数组的内存分析(动态):元素默认值







8.3 数组相关算法:求一个长度为10的整型数组的最大元素


找最值:array[i] > max







平均值:.length

Java学习-----01.Java基础

20165223《JAVA程序设计》第二周学习总结

2数据类型和运算符——标识符和关键字

20165233 Java第三章学习总结

java(

java学习——第二章《java语法》