Java语言基本语法

一、标识符和关键字

标识符

在java语言中,用来标志类名、对象名、变量名、方法名、类型名、数组名、包名的有效字符序列,称为“标识符”;

标识符由字母、数字、下划线、美元符号组成,且第一个字符不能是数字;

java语言区分大小写;

标志符命名规则:类名首字母大写,变量名和方法名采用驼峰标志法,常量全大写,多个单词之间用“_”隔开,包名全小写;

关键字

在java语言中,有一些专门的词汇已经被赋予了特殊的含义,不能再使用这些词汇来命名标识符,这些专有词汇,称为“关键字”;

java有50个关键字和3个保留字,均不能用来命名标识符;

abstract

assert

boolean

break

byte

case

catch

char

class

const

continue

default

do

double

else

enum

extends

final

finally

float

for

goto

if

implements

import

instanceof

int

interface

long

native

new

package

private

protected

public

return

short

static

strictfp

super

switch

synchronized

this

throw

throws

transient

try

void

volatile

while

true、false、null不是关键字,是保留字,但是仍不能用来命名标识符,保留字是java预留的关键字,在以后的升级版本中可能会作为关键字;

二、基本数据类型

1. 整数类型(int为默认类型)

2. 浮点类型(double为默认类型)

在给float类型的变量赋值时,如果赋的值有小数部分则一定要在末尾加上“F”或“f”;

3. 字符类型(2字节)

char ch = 'a';

有些字符不能通过键盘输入到程序当中,这时就需要使用到转义字符;

4. 布尔类型(1字节)

boolean flag = true;

5. 默认值

数值变量:0;

字符变量:‘\0’;

布尔变量:false;

引用数据类型:null;

6. 不同数据类型之间的转换

自动类型转换(低 到 高)

强制类型转换(高 到 低)

public class Test003 {

public static void main(String[] args) {

byte b = 100;

int i = 22;

float f = 78.98f;

int res = b + i + (int)f; //此处对f使用了强制类型转换(int)f,转换后的值为78

System.out.println("res: "+res); //res: 200

}

}

三、运算符与表达式

1. 算术运算符

public class Test003 {

public static void main(String[] args) {

int i = 5;

System.out.println(0/i); //0

System.out.println(0%i); //0

System.out.println(i/0); //除数不能为零,报异常java.lang.ArithmeticException

System.out.println(i%0); //除数不能为零,报异常java.lang.ArithmeticException

}

}

2. 赋值运算符

3. 自增自减运算符(++,--)

public class Test003 {

public static void main(String[] args) {

int i = 5;

System.out.println(i++); //5

System.out.println(++i); //7

System.out.println(i); //7

System.out.println(--i); //6

System.out.println(i--); //6

System.out.println(i); //5

}

}

4. 关系运算符

5. 逻辑运算符

public class Test003 {

public static void main(String[] args) {

boolean t = true;

boolean f = false;

System.out.println(t && f); //false,短路与运算符,若运算符左侧为false则不计算右侧的表达式

System.out.println(t || f); //true,短路或运算符,若运算符左侧为true则不计算右侧的表达式

System.out.println(t & f); //false,与运算符,不管左侧是否为false都要计算右侧的表达式

System.out.println(t | f); //true,或运算符,不管左侧是否为true都要计算右侧的表达式

System.out.println(t ^ f); //true,异或运算符,只要左右两侧不相同则为true,反之为false

System.out.println(!f); //true,取反运算符

}

}

6. 位运算符

public class Test003 {

public static void main(String[] args) {

//在位运算符中1相当于true,0相当于false

int b1 = 6; //二进制为00000000 00000000 00000000 00000110

int b2 = 11; //二进制为00000000 00000000 00000000 00001011

System.out.println(b1 & b2); //按位与运算符,二进制为00000000 00000000 00000000 00000010,结果为2

System.out.println(b1 | b2); //按位或运算符,二进制为00000000 00000000 00000000 00001111,结果为15

System.out.println(b1 ^ b2); //按位异或运算符,二进制为00000000 00000000 00000000 00001101,结果为13

System.out.println(~b1); //按位取反运算符,二进制为11111111 11111111 11111111 11111001,结果为-7

System.out.println(b1 << 2); //左移位运算符,二进制为00000000 00000000 00000000 00011000,结果为24

int b3 = -14; //二进制为11111111 11111111 11111111 11110010

System.out.println(b3 >> 2); //带符号右移位运算符,二进制为11111111 11111111 11111111 11111100,结果为-4

System.out.println(b3 >>> 2); //无符号右移位运算符,二进制为00111111 11111111 11111111 11111100,结果为1073741820

}

}

7. 三元运算符

public class Test003 {

public static void main(String[] args) {

int a = 1;

int b = 2;

int c = 4;

int res = c==a+b?++a:c>a+b?++b:++c; //三元运算符 (表达式)?(值1):(值2),若表达式为true则取值1,反之取值2

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

}

}

8. 运算符优先级

四、数组

1. 一维数组

public class Test003 {

public static void main(String[] args) {

int[] i; //声明一个整型的一维数组变量

int ii[]; //声明一个整型的一维数组变量

i = new int[5]; //创建一个长度为5的一维数组对象,并将变量i指向该对象

float[] f = new float[5]; //直接创建一个长度为5的单精度浮点型一维数组对象,并将变量f指向该对象

double[] d = {1, 2, 3.4, 4.5}; //直接初始化一个一维数组元素

System.out.println(d[3]); //通过数组下标来获取数组内的元素,数组下标从0开始,结果为4.5

System.out.println(f[0]); //当创建出一个数组对象时,该对象内的数组元素为该数据类型的默认值,所以此处结果为0.0

//System.out.println(i[5]); //当通过数组下标来获取数组内元素时,[]内的值>=数组长度则报异常java.lang.ArrayIndexOutOfBoundsException(数组下标越界)

//System.out.println(ii[0]); //若一个数组变量只声明而未指向某一个具体的数组对象时,编译出错

System.out.println(d.length); //得到该数组的长度,结果为4

}

}

2. 二维数组

public class Test003 {

public static void main(String[] args) {

int[][] i; //声明一个整型的二维数组变量

int ii[][]; //声明一个整型的二维数组变量

int[] iii[]; //声明一个整型的二维数组变量

i = new int[5][2]; //创建一个长度为5的二维数组对象,并将变量i指向该对象

float[][] f = new float[5][2]; //直接创建一个长度为5的单精度浮点型二维数组对象,并将变量f指向该对象

double[][] d = {{1}, {2,3}, {4,5,6}, {7,8,9,10}}; //直接初始化一个二维数组元素

System.out.println(d[3][1]); //通过数组下标来获取数组内的元素,数组下标从0开始,结果为8

System.out.println(f[0][0]); //当创建出二个数组对象时,该对象内的数组元素为该数据类型的默认值,所以此处结果为0.0

//System.out.println(i[5][0]); //当通过数组下标来获取数组内元素时,[]内的值>=数组长度则报异常java.lang.ArrayIndexOutOfBoundsException(数组下标越界)

//System.out.println(ii[0][0]); //若一个数组变量只声明而未指向某一个具体的数组对象时,编译出错

System.out.println(d.length); //得到该数组的长度,结果为4

System.out.println(d[2].length); //得到二位数组内的下标为2的那个一维数组的长度

}

}

五、流程控制语句(if,switch,for,while,do...while)

1. 条件分支语句

public class Test003 {

public static void main(String[] args) {

int[] score = new int[5];

score[0] = -7;

score[1] = 65;

score[2] = 80;

score[3] = 90;

score[4] = 59;

for(int i=0; i

if(score[i]>=0 && score[i]<60) {

System.out.println("不及格");

}else if(score[i]>=60 && score[i]<80) {

System.out.println("及格");

}else if(score[i]>=80 && score[i]<90) {

System.out.println("良");

}else if(score[i]>=90 && score[i]<100) {

System.out.println("优");

}else {

System.out.println("成绩异常");

}

}

char ch = 'a';

switch(ch) { //switch括号内只支持 byte,short,int,char,enum五种数据类型,但是JDK1.7版本增加了String类型,所以相对于JDK1.7而言就是六种了

case 'A': //case为switch语句的入口,break为出口,从入口开始执行,直到遇到出口或代码执行完毕才结束

case 'a':

System.out.println("优");

break;

case 'B':

case 'b':

System.out.println("良");

break;

case 'C':

case 'c':

System.out.println("及格");

break;

default: //若上述条件均不匹配,则进default开始执行语句

System.out.println("不及格");

}

}

}

2. 循环语句

public class Test003 {

public static void main(String[] args) {

int res = 0;

out: //out是一个标号,告诉java从哪里开始执行程序

for(int i=1; i<=10; i++) {

if(i==3) continue out; //continue终止本次循环,执行下次循环

if(i==5) break out; //break跳出循环

res = res + i;

}

System.out.println(res); //结果为1+2+4=7

int res2 = 0;

int i = 1;

in:

do{

if(i==3) continue in; //continue终止本次循环,执行下次循环

if(i==5) break in; //break跳出循环

res2 = res2 + i;

i++;

}while(i<=10);

System.out.println(res2);

}

}

java语言基本语法_Java语言基本语法相关推荐

  1. java long类型赋值_Java语言编程第22讲——如何理解“Java是强类型语言”

    强类型语言,即Strongly Typed Language,从字面上理解,就是Java语言对类型要求很严格. Java语言对类型要求有哪些呢? 1.变量必须先声明类型,然后使用 例如: int i; ...

  2. java的基本特性_Java语言的基本特点

    Java语言的基本特点 引导语:Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承.指针等概念.那么你们知道Java语言的特点吗,以下是百分网小编分享给大 ...

  3. java程序设计基础篇_Java语言程序设计(基础篇) 第一章

    第一章 计算机.程序和Java概述 1.1 引言 什么是程序设计呢? 程序设计就是创建(或者开发)软件,软件也称为程序. 1.2 什么是计算机 计算机是存储和处理数据的电子设备,计算机包括硬件(har ...

  4. java c++的区别_Java语言与C、C++之间的区别?

    小伙伴你知道吗?Java是由C++开发而来的,并且在当时一直被搁置.随着Java语言的崛起那么Java和C/C++有什么不同和相同之处呢? 通过上述我们知道那Java前身是C++,并且保留了C++的大 ...

  5. java语言主要特点_Java语言的主要特点

    Java语言有下面一些特点 :简单.面向对象.分布式.解释执行.鲁棒.安全.体系结构中立.可移植.高性能.多线程以及动态性. 1.面向对象 Java语言的设计集中于对象及其接口 ,它提供了简单的类机制 ...

  6. Java高阶代码_Java高阶语法---Volatile

    背景:听说Volatile Java高阶语法亦是挺进BAT的必经之路. Volatile: volatile同步机制又涉及Java内存模型中的可见性.原子性和有序性,恶补基础一波. 可见性: 可见性简 ...

  7. java oracle executeupdate 无效_Java语言的品味(三)

    我们接着上次讨论的Java是一门面向对象的编程语言这个话题继续下去.在前边的两篇文章里,我谈到了Java中有些做的不好的地方.今天就来谈谈做得好的地方.当然,这个好,只是我个人觉得好,还是有不少人是有 ...

  8. java语言程序设计 笔记_Java语言程序设计笔记

    本文主要向大家介绍了Java语言程序设计笔记,通过具体的内容向大家展示,希望对大家学习JAVA语言有所帮助. 对象的自动清除 · 对象回收是由垃圾回收线程负责 · System.gc()方法可以要求系 ...

  9. java语言数据库编程_JAVA语言数据库编程实例详解

    本文主要向大家介绍了JAVA语言数据库编程实例详解,通过具体的内容向大家展示,希望对大家学习JAVA语言有所帮助. DOS命令登录MySQL数据库:mysql -h 127.0.0.1 -u root ...

最新文章

  1. ipad无法与itunes同步,提示因为这台电脑不再被授权使用在此ipad上购买的项目解决方案...
  2. Java访问指示符 访问修饰符
  3. NYOJ 137 取石子(三)
  4. 旅行报告:JavaOne 2013 –重归荣耀
  5. 百度要召集 600 名深度学习开发者搞事情? 首届深度学习开发者峰会等你来
  6. mysql建立聚族索引语句,MySQL学习教程之聚簇索引
  7. MENTOR 安装过程
  8. 【每日一题】 480. 滑动窗口中位数
  9. 无心剑中译阿道司.赫胥黎《冥思月亮》
  10. 吐血推荐:无解的完成图
  11. Android安全之使用root权限绕过检测机制,强行自动允许应用的悬浮窗/应用后台弹出界面等权限
  12. 浏览器主页被篡改修复
  13. Vue 运行提示“没有注册类”的解决办法
  14. [设计模式](十):策略模式(Strategy)与模板模式(Template)详解及二者间区别介绍(两种父子类行为模式)
  15. 记录解决windows XP启动加载个人设置慢的问题
  16. python基础语法(一)range函数
  17. webug 3、延时注入
  18. 计算机应用安全检查通报,Microsoft 安全通报 4092731
  19. jQuery是什么及jQuery写法
  20. 程序员装机必备的软件

热门文章

  1. jQuery 事件 - ready() 方法
  2. 二阶偏微分方程组 龙格库塔法_牛顿法和拟牛顿法——(书中附录B)
  3. antd table排序 vue_商品品牌业务之Vue编写前端页面
  4. 【javascript高级教程】JavaScript Array(数组) 对象
  5. 一文带你了解腾讯位置服务的开发与接入
  6. 【APICloud系列|7】开发一个APP完整流程及注意事项
  7. fastd java下载_FastReport VCL报表控件
  8. NodeJS学习笔记—1.CommonJS规范
  9. Web 开发中应用 HTML5 技术的10个实例教程
  10. React Native面试知识点