Java静和动的静部分半成品

目录

编辑器+编译器

变量

动词

1二元运算

1.1括号运算符()

1.2算术运算符*,/,%;+_

二元运算符的运算规则

加++

加号+

强制转换(如取整)

2、逻辑运算

2.1、关系运算符>,>=;==;!=

布尔值boolean比大小

2.2、逻辑运算符

3、条件运算符?:

段落

循环语句

while

for

有用工具

有用工具1:continue和break

continue标签

有用工具2:计数器

选择语句

if

高级版(多分支)(搞定这个就行)

switch


编辑器+编译器

初级编辑器:记事本

1、新建记事本,.txt强转后缀名为.java(源文件),输入类代码

 2、保存:由于编辑器编辑的源文件含中文,需要将保存类型改为所有文件,将编码方式从UTF-8改为ANSI(暂时我也不知道为啥,后期有时间求证)

3、编译器编译:利用命令行窗口进行编译+运行

 其中,编译代码为:

javac Welcome.java

运行代码为:

java Welcome

 中级编辑器:notepad(原理和初级编辑器相同)

notepad下载

高级工具(全包了):集成开发环境(Intergrated Development Environment, IDE)

IDEA

VS Code

eclipse


其实我们可以将源文件代码看成一篇文章,文章分为段落,句子,词汇,标点符号。

标点符号主要有

本章来看句子和词汇。

句子

 三种流程控制语句能表示所有的事情:变量、选择、循环

变量

(强类型语言java)声明变量类型:变量类型 变量;

(使用时必须)初始化:变量 = ..;

当然,也可在声明的时候直接初始化:变量类型 变量 = ..;

拆解来看,变量、常量为“名词”;=号是“动词”,在编程中我们可以称之为运算符。

名词

自动转换

容量小的数据类型可以自动转换为容量大的数据类型

/**
 *文档说明
 *@
*/

public class zuoye {
	
	int a=3;//成员变量,从属于对象
	static int b=4;//静态变量,从属于类



	public static void main(String[] args){
		//这是单行注释
		/*这是多行注释,注意不能嵌套
		System.out.println("要说技术哪家强");
		System.out.println("当属中国尚学堂");
		System.out.println("学堂一支穿云箭");
		System.out.println("万水千山来相见");
		*/	

		
		//局部变量,因为它在方法里面(从属于方法)
		int c =015;
		int d;//只是声明了变量d,没有初始化
		
		System.out.println(c);
		d=1;//变量使用之前,必须初始化
		System.out.println("d的值为"+d);/*这个加号是连接的意思*/
		/*局部变量:首字母小写和驼峰原则*/


		//常量
		final double PI=3.14;
		//再重新赋值PI=3.1415会出错; //无法为常量再次分配值;
		final int MAX_SPEED=120;
		//常量的命名:全用大写字母,单词之间下划隔开
		/*字符常量;符号常量
		final+变量=常量
		*/

		long yearSalary=300000000000L;//超过21亿,但数字30...默认为整型,需要后面加L表示长整型
		double d1=3.14E2;
		float f1=1.65F;//同上,数字1.65默认为double型,需要后面加f表示浮点型
		double d2=16.5/10;
		System.out.println(f1==d2);
		char c1='a';
		char c2='中';

		System.out.println(c1);
		System.out.println(c2);
		
		
	}
	/*变量(Variable):停车位
	   常量(Constant):一生只爱一个人,一生只赋一个值
	8种基本数据类型:数值型(整数类型byte1字节-8比特256个状态(256种字符)、short2(65536)、int4(21亿)、long8;浮点类型float4、double8)、字符型、布尔型
	整数默认为int
	浮点数存在舍人误差,数字不能精确表示,一般用double(BigDecimal)
	小数(浮点数/浮点常量)默认为double
	*java中字符串不是基本数据类型,而是一个类
	*/
	//保存可默认编译用UTF-8;有中文保存时编译用ANSI
	//编译完,如果源文件有几个类,那就有几个字节码文件

}

动词

1二元运算

1.1括号运算符()

1.2算术运算符*,/,%;+_

二元运算符的运算规则

(默认声明int)整数运算结果默认是int,除非有(>=1个)操作数是long(结果为long)

int d2 = 32 /3 ,结果为10

(默认声明int)取模运算的结果余数为整数,结果余数符号和左边操作数相同:7%-3=1

int d2 = 32 % -3 ,结果为2

(默认声明double)浮点运算(操作数一个为double)结果默认是double,除非两个操作数都是float(结果为float)

double d2=32.0 /3 ,结果为10.66666...

温馨提示:Java是强类型语言,必须要声明变量类型(说的第二遍)

加加++

g=10;

int h = g++;

System.out.println(h);//结果为h=10,先赋值h=g=10,后自增g=g+1=10+1=11

g=10;

int i = ++g;

System.out.println(i)//结果为i=11:先自增g=g+1=10+1=11,后赋值i=g=11

加号+

含义1:加法;含义2:字符串String连接符

String a= "3" ;

int b =4 ;

System.out.println(a+b);//输出为34,但注意它不是数字34,而是字符串3和数字4

字符

char c1 = 'h' ;

char c2 = 'i' ;

System.out.println(c1+c2);//结果为209,其中h的值为104,i的值为105(ASCII值)

System.out.println(""+c1+c2);//结果为hi

强制转换(如取整)

double a = 3.14159 ;

int b = (int)a ;//浮点数强转为整数,直接丢失小数部分,可做取整功能

System.out.println(b);//结果为3

超出表数范围,转成一个没有意义的值

tips:操作比较大的数时,注意是否会溢出

int money = 1000000000;

int years = 20;

int total = money * years;//溢出,结果为200亿,int只有21亿的位置

long tatal1 = money * years;//解决方案1溢出,相乘结果溢出,再赋给long类型的tatal无济于事

long tatal2 = money * ((long)years);//解决方案2正确,引入long类型因子,使相乘结果为long类型

//long tatal2 = 1L * money * years;

2、逻辑运算

输出的是true和false,布尔值(boolean)

两个常量值:true和false,作用:做逻辑判断

占1个或4个字节(一般是4),不可以使用0或非0替代true和falsejava特点,区别于c)

2.1、关系运算符>,>=;==;!=

布尔值boolean比大小

int a = 32;

int b = 4;

boolean c = a>b;

System.out.println(c);//输出结果为true

char d = 'h' ;//可以用System.out.println((int)d);查看char的“值”为104,即h的ASCII码值

boolean e = d>100;

System.out.println(e);

char d = 104 ;//字符的两种赋值形式

2.2、逻辑运算符

与&、短路与$$、或|、抑或^

逻辑运算符位运算

位运算指的是二进制位的运算

与&、或|、抑或^,与boolean值逻辑运算符相同

<<左移运算符(相当于乘2);>>右移运算符(相当于除2取商),乘除以2最快。

int a = 7;//0111

int b = 8;//1000

0111

1000

0000//System.out.println(a&b);0111与1000的结果为0000,转换为10进制输出为15

1111//System.out.println(a|b);0111或1000的结果为1111,转换为10进制输出为15

1111//System.out.println(a^b);0111抑或1000的结果为1111,转换为10进制输出为15

正数8取反:

错误答案:0111为7//System.out.println(~b);输出结果为-9

正确答案:

8的原码:01000(符号位)

8的原码的反码:10111(反码:取反)

8的原码的反码的补码:(取反)11000+1=11001(补码:符号位不变其余位取反,再+1)结果为 -9

拓展 负数-8取反:

-8的原码:11000

-8的原码的补码:10111+1=11000

-8的原码的补码的反码:00111,结果为 7

总结,添符号位,正数先反后补(负数先补后反),但更多的问题来了,溢出?

3、条件运算符?:

String a = x?y:z//x为true,则返回y,否则返回z,等同于

if(x){

        a=y;

}else{

        a=z;

}

段落

循环语句

四步走(for和while本质相同,直接粘也可):

while

初始化部分

while(布尔表达式){

        循环体;

        迭代因子;

}

for

for(初始表达式;布尔表达式;迭代因子) {

        循环体;

}

有用工具

有用工具1:continue和break

continue,结束本次循环,继续下一次

break,结束整个循环,终止

continue标签

特别的,Java没有goto标签,不会像c语言那样乱跳

只有一个地方能实现类似功能,即带标签的continue

//打印101~150之间所有的质数
public static void main(String[] args){

    outer:for (int i = 101 ; i < 150 ; i++){

        for (int j = 2 ; j < i / 2 ; j++){

                if ( i % j == 0)/*计算能不能被整除*/{

                        continue outer;//符合条件,跳到外部循环继续(如果没有用标签不会跳,继续        在本部进行下一轮循环)

                }

        }

        System.out.print(i + " ");

    }
}

有用工具2:计数器

选择语句

if

初级版

if (布尔表达式){

        语句块

}

if语句不写{},则只能作用于后面的第一条语句;tips:任何时候都写上{},即使只有一句话

中级版(双分支)

if(布尔表达式) {

        语句块1;

}else{

        语句块2;

}

高级版(多分支)(搞定这个就行)

if(布尔表达式) {

        语句块1;

}else if {

        语句块2;

}else {

        语句块3;

}

switch

switch (表达式) {

        case 值1:

                语句块1;

                break;

        case 值2:

                语句块2;

                break;

        default:

                默认语句块;

}

与if的关系:本质一样,布尔表达式为判断相等,但switch判断相等更直观;等价if如下:

if(表达式==case1){

        语句块1;

}else if(表达式==case2){

        语句块2;

}else{

        默认语句块;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值