java基础扩展知识点_Java基础知识点1

运算符

运算符的分类:

算术运算符 赋值运算符 关系运算符 逻辑运算符 位运算符 三目运算符

自增自减运算符:++i:i先自加,再做其他运算;i++先运算再自加;

--i先自减再做其他运算;i--先运算再自减;

赋值运算符

= : 这个等于号在Java中表示赋值的意思,真正数学意义上的相等是==在JavaScript当中还有===,表示类型和数值都相等

扩展赋值运算符:

+=-=*=/=%=(使用扩展赋值运算符系统会自动帮我们强制类型转换)

*关系运算符的结果是boolean类型

逻辑运算符作用: 连接多个boolean类型的表达式

boolean类型的表达式1逻辑运算符boolean类型的表达式2逻辑运算符boolean类型的表达式3逻辑运算符boolean类型的表达式n

与(&): 有一个为false结果为false;如果都为true结果才为true

或(|): 有一个为true结果为true;如果两个都为false结果才为false

异或(^): 相同为false,不同为true(相同为0,不同为1)

非(!): 取反

当!的个数是奇数个的时候,结果相反

当!的个数是偶数个的时候,结果不变

面试题: & 和&&的区别

1、& 表示按位与,无论什么情况都会同时计算运算符两边的表达式

2、&& 表示短路与,如果前面的表达式为false,那么无论后面结果如何,都不会去计算后面表达式的值

3、&&开发中使用,&基本不用

4、&常用于位运算,位运算的效率比普通运算要高很多

条件运算符(三目运算符(?:)):

格式:X? Y : Z(X表达式必须是boolean类型的表达式)

X为ture,则输出Y,为false,输出Z

表达式: 符合一定语法规则的运算符和操作数的式子。

使用Scanner对象一些小技巧:

1.使用键盘输入获取数据之前建议加入提示性语句

2.next系列的方法是阻塞方法,会等待用户的输入,用户输入结束,程序继续执行

注意事项:异常名称: 输入不匹配异常

产生原因: 输入的类型和接收的类型不匹配

解决办法: 类型匹配即可

位运算符: 用来计算二进制的运算符

例如System.out.println(3 & 4); // 0

00000000 00000000 00000000 000000113

&00000000 00000000 00000000 000001004

-----------------------------------------

00000000 00000000 00000000 000000000

原码、反码、补码的运用

在计算机中,负数可以用原码、反码、补码表示

但计算机只有表达一种方式:补码

计算机中只要是运算都是用补码来操作

原码:最高位是符号位,0表示正数,1表示负数

反码:正数的反码和原码相同,负数的反码是除了符号位不变,各位按位取反

补码:正数的补码和原码相同,负数补码是在反码末位加1

例如:10001001

1  0001001 原码

1  1110110 反码

1  1110111 补码

移位运算符

<<  >>>>>

<< 左移:左边最高位丢弃,右边补0

>> 右移:

最高位是0,左边补0

最高位是1,左边补1

>>> 无符号右移:无论最高位是0还是1,左边补0

System.out.println(-24 >> 2);

计算出24的二进制11000

原码 : 10000000 00000000 00000000 00011000

反码 : 11111111 11111111 11111111 11100111

补码 : 11111111 11111111 11111111 11101000

1111111111 11111111 11111111 111010 补码

1111111111 11111111 11111111 111001 反码

1000000000 00000000 00000000 000110 原码

结果 -6

System.out.println(-24 >>> 2);

计算出24的二进制

原码 : 10000000 00000000 00000000 00011000

反码 : 11111111 11111111 11111111 11100111

补码 : 11111111 11111111 11111111 11101000

补码: 0011111111 11111111 11111111 111010

反码: 0011111111 11111111 11111111 111001

原码: 0100000000 00000000 00000000 000110

*面试题:

1.请用计算机执行效率最快方式计算2乘以16

2 << 4

2.使用最有效率的方式交换两个数的位置(两个数对调)

方式一:

int temp ;

int a = 10;

int b = 20;

temp = a;

a = b;

b = temp;

方式二

利用异或的特点: 一个数值对另外一个数值进行异或两次,那么数值本身不做任何改变

inta,b;a=a^b; b=a^b; a=a^b;(相同为0,不同为1)

分支语句

If语句

格式:if(条件表达式){

语句体;

}

执行流程: 如果条件表达式为true,执行if语句体,否则不做任何操作

注意事项:

*   1.当语句体中只有一条语句的时候,大括号可以省略,但是建议不省略,但是如果有多条语句必须使用大括号包裹

*   2.注意if(score >= 90)  ;  {} 这种会永远执行

*   3.单if语句可以使用三目运算符改进,建议使用三目

*   4.条件表达式必须是boolean类型的值

if-else语句

格式:执行流程:如果条件表达式的结果为

if(条件表达式){true执行语句体1;

语句体1;

} else {false执行语句体2;

语句体2;

}

注意:

1.比较基本类型是否相等使用==,比较引用类型是否相等暂时使用equals

2.能用三目运算符尽量使用三目运算符

能够使用三目改进的就一定能够使用if语句,但是能用if语句实现的不一定可以使用三目运算符

多重if语句

格式:

if(条件表达式1){

语句体1;

} else if(条件表达式2){

语句体2;

} else if(条件表达式3){

语句体3;

} ...else if(条件表达式n){

语句体n;

} else {

语句体n+1;

}

注意事项:

1.这种语句一般作用于区间判断

2.else if可以有多个,else最多只有一个

嵌套if语句

格式:

if(条件表达式1){

语句体1;

if(条件表达式1){

语句体2;嵌套if--else

} else {

语句体3;

if(条件表达式1)嵌套if

{语句体3;}

}

} else {

if(条件表达式1){嵌套多重if--else

语句体1;

} else if(条件表达式2){

语句体2;

} else if(条件表达式3){

语句体3;

} ...else if(条件表达式n){

语句体n;

} else {

语句体n+1;

}

}

注意!嵌套if语句一般可读性差!

swicth语句格式

switch (表达式)  {

case 值1 :

语句序列;

break;

case 值2:

语句序列;

break ;

default:

break ;

}

switch语句的特点:

1.表达式的类型可以是以下几种数据类型(byte short int char)

注意: 表达式的类型本质还是整数类型(byte short int char)他们之间换算还是会转化成int类型来计算

2.case子句的取值必须是常量表达式,case子句可以有多个,case子句的值不能重复

3.default子句类似于if语句中的else,default子句可以出现在switch语句中的任何位置,建议放在最后面

4.break子句表示退出switch语句体,如果case或者default子句中没有break子句,会出现break穿透现象,如果都没有break子句,程序会从上至下依次执行

---------------------------------------------------------------------------------------------------------

if语句和Switch语句的选择

if选择结构

基本if选择结构: 处理单一或组合条件的情况

if-else选择结构:处理简单的条件分支情况,建议使用三目运算符改进

多重if选择结构:处理复杂的条件分支情况

嵌套if选择结构:用于较为复杂的流程控制

switch选择结构

多重分支并且条件判断是等值判断的情况

if语句和switch语句的区别

if语句

表达式的结果是boolean类型

常用于区间判断

switch语句

表达式类型不能是boolean类型,可以是byte short int char String枚举

常用于等值判断

选择语句的选取:

能用switch语句实现的就一定可以使用if实现,但是反之不一定

如果是区间范围采用if,如果是等值判断使用switch

循环语句

for循环

while循环

do-while循环特点是:先执行一次循环体,再判断条件

循环语句总结

for,while循环是先判断再执行;do-while循环是先执行,再判断,并且一定会执行一次循环体。

在循环结束后,还希望能使用作为循环条件判断使用的变量,使用While循环,否则使用for循环。for循环的变量i只作用于循环体。

如果循环条件是一个区间范围的,使用for循环。如果循环次数不明确,使用while循环。

for while do-while循环三者的区别和选取

1.for 和while do-while比较

a.for循环针对循环次数确定的情况,while和do-while针对循环次数不确定的情况

b.for循环里面的循环变量只在循环体内有效,while循环放在循环体外,作用于全局

2.while 和do - while的比较

while循环是先判断条件是否成立,再执行循环体

do-while实现执行一次循环体,再来判断条件是否成立

break语句

break作用:终止某个语句块的执行,退出循环体或者switch语句体

注意:break + 标签名的写法不建议书写,因为会大大降低程序的刻度性,慎用

continue语句

continue只能够作用在循环体内

continue的作用

1.表示退出本次循环,执行下一次循环

2.退出本次循环,直接执行控制条件语句(for循环)

3.一旦碰到continue关键字,无论continue下面有多少行代码都不会被执行

循环

单层循环

表示退出本次循环,执行下一次循环

多层循环

continue + 标签名:直接执行标签名所对应的循环的控制条件语句(for)

例如:outLoop:for (int i = 0; i < 3; i++) {

innerLoop:for (int j = 0; j < 7; j++) {

if (j == 3) {

continue outLoop;

}

System.out.print("*");

}

=============================================================================================================================================================================================================================================

*方法:

为什么需要学习方法?

1.简化了代码

2.提高了代码的扩展性和可维护性

3.我们从一个方法的实现者转而成为了一个方法的调用者指挥者,这也是面向对象思想的心基础

方法概念: 完成特定功能的代码片段

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
无论是工作学习,不断的总结是必不可少的。只有不断的总结,发现问题,弥补不足,才能长久的进步!!Java学习更是如此,知识点总结目录如下: 目录 一、 Java概述 3 二、 Java语法基础 5 数据类型 5 运算符号 14 语句 15 函数 15 方法重载(Overloadjing)与重写(Overriding) 16 数组 17 总结 18 三、 常见关键字 20 四、 面向对象★★★★★ 21 五、 封装(面向对象特征之一)★★★★ 23 六、 继承(面向对象特征之一)★★★★ 25 七、 接口(面向对象特征之一)★★★★ 28 八、 多态(面向对象特征之一)★★★★ 30 九、 java.lang.Object 31 十、 异常★★★★ 34 十一、 包(package) 37 十二、 多线程★★★★ 39 为什么要使用多线程 39 创建线程和启动 39 线程的生命周期 44 线程管理 45 线程同步 49 线程通信 52 线程池 58 死锁 64 线程相关类 65 十三、 同步★★★★★ 67 十四、 Lock接口 70 十五、 API 71 String字符串:★★★☆ 71 StringBuffer字符串缓冲区:★★★☆ 73 StringBuilder字符串缓冲区:★★★☆ 74 基本数据类型对象包装类★★★☆ 75 集合框架:★★★★★,用于存储数据的容器。 76 Collection接口 77 Iterator接口 78 List接口 78 Set接口 80 Map接口 81 把map集合转成set的方法 82 使用集合的技巧 83 Collections--集合工具类 83 Arrays—数组对象工具类 84 增强for循环 85 可变参数(...) 86 枚举:关键字 enum 86 自动拆装箱 86 泛型 87 System 89 Runtime 90 Math 90 .Date:日期类,月份从0—11 92 Calendar:日历类 93 十六、 IO流:用于处理设备上数据 ★★★★★ 94 IO流的概念 95 字符流与字节流 98 流对象 101 File类 102 Java.util.Properties 103 介绍IO包中扩展功能的流对象 103 十七、 网络编程 110 网络基础之网络协议篇 111 UDP传输 124 TCP传输 126 十八、 反射技术 127 十九、 Ajax原理及实现步骤★★★★★ 130 Ajax概述 130 Ajax工作原理 130 Ajax实现步骤 130 详解区分请求类型: GET或POST 131 $.ajax标准写法 134 二十、 正则表达式:其实是用来操作字符串的一些规则★★★☆ 135 二十一、 设计模式★★★★★ 136 设计模式简介 136 单例设计模式:★★★★★ 156 工厂模式★★★★★ 159 抽象工厂模式★★★★★ 163 建造者模式 170 原型模式 177 适配器模式 182 桥接模式 188 过滤器模式 192 组合模式 193 装饰器模式★★★★★ 196 外观模式 201 享元模式 204 代理模式★★★★★ 208 责任链模式 212 命令模式 216 解释器模式 219 迭代器模式 222 中介者模式 224 备忘录模式 226 观察者模式 230 状态模式 233 空对象模式 236 策略模式★★★★★ 238 模板模式 240 访问者模式 244 设计模式总结★★★★★ 247 二十二、 Java其他总结 248 Java JVM知识点总结 248 equals()方法和hashCode()方法 270 数据结构 273 Array方法类汇总 304 Java数组与集合小结 305 递归 309 对象的序列化 310 Java两种线程类:Thread和Runnable 315 Java锁小结 321 java.util.concurrent.locks包下常用的类 326 NIO(New IO) 327 volatile详解 337 Java 8新特性 347 Java 性能优化 362

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值