美文网首页
Javaの语言基础【二】

Javaの语言基础【二】

作者: 耑意儿 | 来源:发表于2018-03-27 15:39 被阅读44次
目录:
1、运算符
2、语句
3、函数
4、数组

进击的小仙

1. 运算符

运算符按照操作数的个数可以分为:单目运算、双目运算、三目运算
按照功能可以分为:逻辑运算符、位运算符、关系运算符、赋值运算符、算术运算符、其他。

1.1、算术运算符

  • 单目运算: ~ (按位取反)、!(取非)、- (负号运算)、++ (自增)、-- (自减)
  • 双目运算: + - * / %(取余)
  • 三目运算:a > b ? true : false ;
    说明:当a大于b的时候,运算结果为true,否则结果为false。
    这整个运算符包括一个关系运算符(可以是“>”"<""!="等等),一个“?”,一个“:”,冒号前后需要有两个表达式或者是值或者是对象。
int x = 3 , y ;
y = (x - 1 ) ? 100 : 200 ;
若 x >1 则 y =100 ;
好处:简化了 if ... else 代码
弊端:运算完一定有一个结果,if ... else 不用

1.2、关系运算符

== (等于)、!=(不等于)、> (大于)、< (小于)、>=(大于等于)、<= (小于等于)

1.3、位运算

& (与)、| (或)、~ (非)、^ (异或)

1011 & 1100 = 64
先将数转换成二进制,与运算之后,转换回十进制。

1.4、逻辑运算符

&& (双与)、|| (或)、 !(非)

1.5、赋值运算

= 、 += 、 -= 、 *= 、 /= 、 %= 、 &= 、 |= 、 <<= 、 >>=

1.6、其他

  • instanceof 实例判断
  • 位移
    << (带符号左移)、>> (带符号右移)、>>>(无符号右移)、<<<(无符号左移)

1、用最高效的方式算出2乘以8(位运算)
2<<3
2、不用第三个变量的情况下,对两个证书变量的值进行互换

int n =3 ,m=8;
n = n + m ; // 11 = 3 + 8
m = n - m ; // 3 = 11 - 8 
n = n -m ;  // 8 = 11 - 3

2. 语句

2.1、条件控制语句

  • if语句
if (条件){
   条件成立执行的代码
}
  • if ... else 语句
if (条件){
   条件成立执行的代码
}else{
   条件不成立执行的代码
}
  • 多重if语句
if(条件1){
  条件1成立时执行的代码
}else if (条件2){
  条件2成立时执行的代码
}else{
  条件1和条件2都不成立时执行的代码
}
  • 嵌套if语句
if(条件1){
   if (条件2){
      代码块1
   }else{
      代码块2
   }
}else{
   代码块3
}
  • switch语句
switch (表达式){
  case 值1:
     代码块1;
     break;
  case 值2:
     代码块2;
     break;
  case 值n:
     代码块n;
     break;
  default:
      默认代码块;
}
注意:上面的表达式只接受四种数据类型:byte 、short 、 int 、 char,jdk1.7之后可以作用在String上

2.2、循环控制语句

  • while语句
while (条件判断){
    循环操作代码块
}
  • do...while语句
do{
    循环操作代码块
}while(条件判断)
与while语句不同的的是比他多执行一次循环操作代码块。
  • for语句
for (循环变量初始化;循环条件;循环变化){
    循环操作代码块
}
注意:
括号中的三个表达式都可以省略,但是分号不可以省略。
1、循环变量初始化省略,可将循环变量的初始化放到循环语句上面
2、循环条件省略会导致死循环,要注意
3、循环变量的变化省略,可以将循环变量变化放到循环操作代码块里边。
  • 高级for循环
for ( 变量数据类型 变量名 :遍历的对象){
    循环体
}
  • for 与 while的不同之处
    需要定义循环增量的时候我们选择用for语句。
  • 最简单的无限循环表达:
    1、for ( ; ; ){ 循环代码块 } ;
    2、while (true) { 循环代码块 } ;
  • break 与 continue
    break是跳出循环体,continue是继续,就是结束当次循环进入下个循环。
    break语句:应用于 条件结构、循环结构
    continue语句:应用于 循环结构
    离开应用范围无意义;两个单独存在下方都不能有语句;加标号可以控制结束当次外循环操作,进入下一个循环。

3. 函数

3.1、主函数

public static void main (String[] args) { }

主函数时固定格式的,被虚拟机识别,而且只识别这个。
public:表示该函数访问权限最大
static:表示函数随着类的加载就存在
void : 主函数无具体返回值类型
main : 非关键字,但是可以被Jvm识别
String[] args:函数的参数,一个字符串类型的数组,虚拟机调用主函数时,传入的参数是(new String[0])

3.2、构造函数

构造函数的作用是给对象初始化。
分析事物时,该事物存在具备一些特性或行为,则将这些内容定义在构造函数中。
构造函数在写法上与一般函数的不同之处在于:

  • 函数名与类名一致
  • 无返回值类型
  • 无需return语句

一个类中多个构造函数之间以重载的形式出现。
1、对象一建立即调用与之对应的构造函数,比如生活中,小孩一出生就会哭。
2、若类没有定义构造函数,系统就会默认给该类加一个空参数的构造函数,如果有定义就没有默认的构造函数。
3、构造函数和一般函数在运行上的不同在哪里?
-- 构造函数:对象一建立就执行,对对象进行初始化。
-- 一般函数:在调用的时候才执行,是给对象添加对象具备的功能。(比如,因而会吃饭,但并不是一直不停地在吃的。)
4、一个对象建立,构造函数只运行一次,一般方法可以被对象调用多次。

3.3、构造代码块

构造代码块也是用来给对象进行初始化的。
对象一建立就执行,且优先于构造函数执行
构造代码块与构造函数的区别:
1、构造代码块给所有对象进行初始化
2、构造函数给对象初始化。

3.4、函数的重载和重写

  • 重载
    重载是一个类中多态性的表现。
    1、参数类型、个数、顺序至少有一个不同
    2、不能重载只有返回值不同的方法名
    3、存在于父类和子类、同类中
  • 重写
    重写是子父类之间多态性的表型。
    1、方法名、参数、返回值相同
    2、子类方法不能缩小父类方法的访问权限
    3、子类方法不能抛出比父类方法更多的异常
    4、存在于父类和子类之间
    5、被final修饰的方法不能被重写

4. 数组

数组是同一类型数据的集合

  • 格式1:
int[] arr = new int[5];
  • 格式2:
int[] arr = new int[]{3,5,1,7};
int[] arr = {3,5,1,7};

数组的常见异常:空指针异常(NullPointerException),数组角标越界异常(ArrayIndexOutOfBoundsException)

相关文章

网友评论

      本文标题:Javaの语言基础【二】

      本文链接:https://www.haomeiwen.com/subject/zwajcftx.html