Java基础知识----运算符

一. Dos基础命令

窗口键+r,一起按下,输入cmd,打开dos界面
输入d:,进入d盘
输入dir,查看有哪些文件夹
输入md test, 创建名叫test的文件夹
输入rd test,删除名叫test的文件夹
输入cd test,进入名叫test的文件夹
输入cd… ,返回上级目录
输入cd\ , 返回根目录
输入del cat.java,删除名叫cat的java文件
在输入dos命令时,要使用英文输入法

二. Java基础

JDK 和 JRE

JDK(Java Development Kit) 是Java的开发工具,包括了JRE,其中的开发工具:编译工具(javac.exe) 打包工具(jar.exe)等

JRE(Java Runtime Environment)
包括Java虚拟机和Java程序所需的核心类库等

JVM 包含于 JRE 包含于 JDK
在这里插入图片描述

Test.java

public class Test{
	public static void main(String[] args){
		System.out.print("Hello world");
	}
}

进入cmd,找到.java所在目录
javac Test.java 之后会多出一个Test.class文件
运行class文件 java Test

  • Java源文件以.java为扩展名,源文件的基本组成部分是类
  • java应用程序的执行入口是main()方法
  • java严格区分大小写
  • java方法由一条条语句构成,每个语句以;结束
  • 括号都是成对出现的,缺一不可

在这里插入图片描述

常见问题

源文件名不存在或者写错,或者当前路径出错
类文件名写错,或者类文件不在当前路径下
声明为public的主类应与文件名一致,否则编译失败

注释

/**
*文档注释
*这是一个打印helloworld的类
*@author xjl
*@version 1.0.0
*/
public class Test{
    public static void main(String[] args){
        //单行注释
        System.out.println("Hello World");
        /*
        多行注释
        */
    }
}

关键字:

在java语言编程时,在关键的地方使用的单词,体现其含义,比如
class----类, public----公共的
保留字:可能在以后被用来作为关键词的单词
标识符:Java对各种变量,方法和类等要素命名时使用的字符序列称作标识符(凡是自己可以起名字的地方),(数字不可以开头,不可包含空格)

命名规范:
包名:所有字母都小写xxxyyyzzz。
类名,接口名:多单词组合时,所有单词首字母大写XxxYyyZzz。
变量名,方法名:多单词组成时,第一个单词首字母小写,第二个单词开始每个单词首字母大写:xxxYyyZzz。
常量名:所有字母都大写,多单词时用下划线连接:XXX_YYY_ZZZ

变量:
数据类型 变量名称 = 变量值,变量初始化,例如 int i = 1;
=代表赋值
变量的作用域,一对{}之间有效
变量是通过变量名来访问这块区域的

数据类型分为基本数据类型(8种)和引用数据类型

在这里插入图片描述
整数类型:byte,int,short,long
long类型变量赋值的时候要在数值后面加上字母l

浮点类型:float,double
float类型变量赋值的时候要在数值后面加上字母f

字符:用英文单引号括起来的单个字母,数字,符号
\转义字符

布尔类型: 只允许取值false和true,无null
boolean b1 = true;

字符串:就是由0到多个字母数字符号组成的一个串,用英文双引号括起来
凡是引用类型,都可以用null作为值,在初始化时可以赋值为null

String类是一个不可变类,创建出的字符串将存放在数据区,保证每个字符串常量只有一个,不会产生多个副本

int i1 =1;
int i2 =2;
以上这种会在内存中存储两个1的值

String s0 = “hello”;
String s1 = “hello”;
String s2 = “he” + “ll” + “o”;
在内存中不会存在两个“hello”
假设hello的内存地址为xxxxxx,声明s0变量时给s0赋值为hello实际上是让s0变量引用hello的内存地址xxxxxx,声明变量s1赋值时,实际上也是让s1变量引用hello的内存地址xxxxxx
在这里插入图片描述

基本数据类型转换

int i =1;
short b = 2;
byte c = 3;
result = i + b + c;
//在计算过程中,b和c被转换为int类型
char c = 'a';
byte b = 2;
int k = c + b;
//结果输出为99,char类型与数字进行运算时,转换为相应的ASCII码值再进行运算

String str0 = "1" + 1 + 2 + 3;
//输出结果为1123,自动将基本类型转换为字符串类型

System.out.println(3 + 4 + "hello");
//输出结果为7hello,前面一部分按照数字加法计算

System.out.println('a' + 1 + "hello");
//输出结果为98hello,前面一部分按照a的ASCII码为97进行数字加法计算

System.out.println("hello" + 'a' + 1);
//输出结果为helloa1

强制转换

boolean类型不能强制转换为其他类型

byte b = 9;
int i = b;
//以上属于正常的隐式转换

int k = 7;
byte b0 = (byte) k ;
//以上属于强制转换

三.运算符

算术运算符

在这里插入图片描述
++ 自增(前):先运算后取值
++ 自增(后):先取值后运算
– 自减(前):先运算后取值
– 自减(后):先取值后运算

a=2;b=++a;    //a=3,b=3

a=2;b=a++;    //a=3,b=2

System.out.println(7 / 2);//输出为3
//当整数除以整数时,会把结果小数部分舍弃,保留整数部分

System.out.println(7 % 2);//输出为1,取余数
System.out.println('*' + '\t' + '*');//输出为93, char类型可以进行数学运算,将字符转换为ASCII进行计算,上式将三个字符的ASCII码相加
System.out.println("*" + '\t' + '*');//输出为*	*,把其他数据转换为字符串,做了一个字符串拼接

赋值运算符

在这里插入图片描述

/*
变量参与运算的时候,java程序不知道具体的变量在做完后会不会超出当前变量的范围
所以会先把变量转换为一个更大长度,在这个例子中,
short是一个短整型数据,会默认转化为int,若直接运行会报错
*/
short s = 2;
s = s + 3;
应该为 s = (short) (s + 3);

但是使用 s += 3;时不需要强制转换
//在使用扩展赋值运算符时,变量在参与运算时会把结果强制转换为当前变量的类型
int i=1;
i *= 0.1;
System.out.println(i);//此时输出i为0,因为0.1被强制转换为int型

比较运算符

  1. ==不能误写为=
  2. 结果都是boolean类型

逻辑运算符

在这里插入图片描述
在这里插入图片描述

位运算符

在这里插入图片描述
在这里插入图片描述在这里插入图片描述
正数的>>>与>>一致
负数的>>>与>>不一致

有符号的右移是补0还是补1,看右移之后的首位是0还是1,如果是1,补1,如果是0,补0

最高位代表正负号,无符号的右移时,不管移动之后的首位是0还是1,空位直接补0,
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

&运算,同位&运算时,都是1时结果为1,其他情况都是0
|运算,同位|运算时,都是0时结果为0,其他情况都是1
^ 运算,同位^ 运算时,都是0或都是1时结果是0,其他情况都是1
~运算,就是把二进制的同位翻转,也就是1变0,0变1

三元运算符

在这里插入图片描述

//获取两个数中较大的数
int m = 1;
int n = 2;
System.out.println(m > n ? m : n);

//获取三个数中较大的数
int m = 1;
int n = 2;
int k = 3;
System.out.println(m > n ? (m > k ? m : k) : (n > k ? n : k))

在这里插入图片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章