Javaの语言基础【二】

目录:
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)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 219,366评论 6 508
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,521评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 165,689评论 0 356
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,925评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,942评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,727评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,447评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,349评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,820评论 1 317
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,990评论 3 337
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,127评论 1 351
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,812评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,471评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,017评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,142评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,388评论 3 373
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,066评论 2 355

推荐阅读更多精彩内容