javaSE(二)

 

1.逻辑运算符

逻辑与 &        遇false则false

逻辑或 |         遇true则true

逻辑异或 ^    两边相同为false 两边不同为true

逻辑非    !  相反

&和&&的区别 |和||的区别

&和|无论左边怎么样 右边都执行

&&左边为false,右边不执行

||左边为true,右边不执行

 

2.位运算符

位与   &   有0则0

位或   |    有1则1

位异或 ^  相同为0不同为1

位非    ~   按位取反

    System.out.println(6&3);
	System.out.println(6|3);
	System.out.println(6^3);
	System.out.println(~6);

输出结果为:

2

7

5

-7

因为是按照二进制进行计算的。 

位与为例子:    110&011   有0为0  010 换算回十进制是2

位异或运算符

一个数据被另一个数据异或两次,该数不变

	System.out.println(5^10^10);
	System.out.println(10^20^10);

  输出结果为5     20

面试题一则:不借助第三方变量实现两个整数变量互换

x=x+y;(此时x为总和)

y=x-y;(y=总和-y 就是以前x的值)

x=x-y;

(存在弊端,可能超出数据类型的取值范围)

使用异或可以避免

x=x^y;

y=x^y;      //y=x^y^y 也就是y=x

x=x^y;      //x=x^y^x 此时x=y

 

3.左移右移

左移就是乘2的几次幂 右移就是除以2的几次幂

最快速算出2*8

2<<3

 

4.三元运算符

(关系表达式)?表达式1:表达式2;

比较两个整数是否相同

        int a = 10;
		int b = 10;
		boolean c = (a == b);
		System.out.println(c);

默认是()?true:false

获取三个数中的最大值

先对两个数字使用三元运算符比较,再把得到的数字和第三个数字进行三目运算

 

5.键盘录入

第一个对象 Scanner

第一个包     java.util.Scanner

 

可以用来测试上面的实:①输入三个数,输出最大的     ②输入两个数,完成简单的求和    ③判断输入的两个数是否相等

 

6.选择结构if语句

第一种结构if(){} true就执行语句 false就不执行(注意事项:①比较表达式一定要为boolean类型②单个语句(int x =10是两个语句 int x 是声明语句     x=10是赋值语句)可以省略大括号,但是建议一直不要省略)

第二种if(){} else{}结构 (可以用来做①判断奇数偶数②替代三元运算符)

第三种if() {} else if(){}  else if(){}else()

if语句的嵌套可以用来实现求三个数中的最大值
 

7.选择结构switch语句

switch(){case :; case :;default:;}

switch里面是表达式,不是关系表达式,表达式可以接受(基本类型:byte,short,char,int   引用类型:jdk1.5接受枚举 jdk1.7接受string字符串)

 

注意事项:①case后面的只能是常量②而且值不能重复③只能省略最后一个break,以免出现break穿透④一般不要省略default,防止意外⑤default一般放在最后,但不是必须,其执行顺序在最后

 

8.switch和if

switch建议判断固定值的时候使用

if建议在判断范围的时候使用(比如输入月份,判断季节用if,判断是几月份用switch)

 

9.循环结构for语句

最经典也最常用 for(int i=0;i<10;i++).........在循环结构完成后,for后面表达式里面的变量会被释放

典例:输出100-999的所有水仙花数

	for (int i = 100; i < 999; i++) {
		int ge =i%10;
		int shi =i/10%10;
		int bai=i/10/10%10;
		if(ge*ge*ge+bai*bai*bai+shi*shi*shi==i){
			System.out.println(i);
		}
	}

最简单的求水仙花数,切记:一般运算中最后都要归结到取模获取目标位置的数字。这样格式统一看起来简洁。

这里有一个计数器思想用来处理统计类型的需求

需要设置变量用做统计,满足条件就自增。

 

10.循环结构while语句

无论是选择结构还是循环结构,表达式小括号和循环体语句中间不能有;

 

11.循环结构do……while语句

do……while至少执行一次。因为是先执行再判断。

 

12 .死循环两个

while(true){}

for(;;){}

 

13.循环语句嵌套实例

输出三角形

	for (int i = 1; i <= 5; i++) {
			for (int x = 1; x <= i; x++) {
				System.out.print("*");
			}
			System.out.println();
		}

输出99乘法表

for (int i = 1; i <=9; i++) {
			for (int j = 1; j <= i; j++) {
				System.out.print(j+"*"+i+"="+(j*i)+" \t");
			}
			System.out.println();
		}

将*换为对应的拼接字符串

 

14.转义字符

	System.out.println("\"");		//	转义双引号
		System.out.println('\'');			//  转义单引号
		System.out.println("\r");        //  回车
		System.out.println("/n"); 		//  换行

 

15.控制跳转语句

    * return和break以及continue的区别?
    * return是结束方法,下面的代码也不执行
    * break是跳出循环
    * continue是终止本次循环继续下次循环

利用一段代码说明

for (int i = 1; i <=10; i++) {
			if(i%3==0){
//				break;					//直接跳出循环,只输出了i=1,2时候的情况(两个)
//				continue;    			//1~10除去三六九,输出了七个
//				System.out.println("测试代码");		//十三个,1~10输出了一次,369各自多输出一次
			}
			System.out.println("测试代码");
		}

 

16.控制跳转语句标号

只要是合法的标识符就可以

标号:代码块

一个正常的嵌套循环:

outer: for (int i = 1; i <= 10; i++) {
			System.out.println("i=" + i);
			inner: for (int j = 1; j <= 10; j++) {
				System.out.println("j=" + j);
				break;
			}
		}

i不断增加,j每次输出1就跳出。

利用标号之后:

outer: for (int i = 1; i <= 10; i++) {
			System.out.println("i=" + i);
			inner: for (int j = 1; j <= 10; j++) {
				System.out.println("j=" + j);
				break outer;
			}
		}

输出结果为i=1 j=1 直接跳出外层循环。

所以标号在实际的应用中主要作用就是跳出外层循环

代码分析:

System.out.println("千山鸟飞绝");
		http://www.4399.com;
		System.out.println("万径人踪灭");

会不会报错?不报错的话会输出什么?

输出结果为两句诗词。因为http:是一个标号,后面跟了一个单行注释。http是sysout万径人踪灭的标号。

 

17.方法

实参和形参(形参是方法描述,实参是实际参与运算的。也就是说方法定义中的参数是形参,调用方法中的参数是实参)

                盘子=炒菜(土豆,盐,30,大);
		盘子 炒菜(主材,佐料,烹饪时间,火候){
			炒菜的具体操作
			return 一盘菜;
		}

18.方法的重载

方法重名,但是参数列表不同(参数数目,参数类型不同等)

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值