java语言基本语法_Java语言基本语法

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预留的关键字,在以后的升级版本中可能会作为关键字;

二、基本数据类型

4b9ff1773cf306e9d6c79da8e419f6b7.png

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

f1ebc080d9869680cb7c7491e4e423bf.png

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

0ecaa8c70838250a2eac4729e3cdc7b0.png

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

3. 字符类型(2字节)

char ch = 'a';

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

bd8d9d8dccfa52b662199445fdb29116.png

4. 布尔类型(1字节)

boolean flag = true;

5. 默认值

数值变量:0;

字符变量:‘\0’;

布尔变量:false;

引用数据类型:null;

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

自动类型转换(低 到 高)

95058a2293fee7239fd106e1bf2923dd.png

强制类型转换(高 到 低)

48304ba5e6f9fe08f3fa1abda7d326ab.png

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

}

}

48304ba5e6f9fe08f3fa1abda7d326ab.png

三、运算符与表达式

1. 算术运算符

eb964e9ed1bd4c9ab31d6445a9feded8.png

48304ba5e6f9fe08f3fa1abda7d326ab.png

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

}

}

48304ba5e6f9fe08f3fa1abda7d326ab.png

2. 赋值运算符

b92220a5cf62e0455e17c3d6ee98cb7d.png

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

48304ba5e6f9fe08f3fa1abda7d326ab.png

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

}

}

48304ba5e6f9fe08f3fa1abda7d326ab.png

4. 关系运算符

a4ccac2bf26aa3b4bc383866ec935d1d.png

5. 逻辑运算符

48304ba5e6f9fe08f3fa1abda7d326ab.png

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,取反运算符

}

}

48304ba5e6f9fe08f3fa1abda7d326ab.png

6. 位运算符

48304ba5e6f9fe08f3fa1abda7d326ab.png

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

}

}

48304ba5e6f9fe08f3fa1abda7d326ab.png

7. 三元运算符

48304ba5e6f9fe08f3fa1abda7d326ab.png

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

}

}

48304ba5e6f9fe08f3fa1abda7d326ab.png

8. 运算符优先级

54cecbc22668defe39f18691f622a059.png

四、数组

1. 一维数组

48304ba5e6f9fe08f3fa1abda7d326ab.png

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

}

}

48304ba5e6f9fe08f3fa1abda7d326ab.png

2. 二维数组

48304ba5e6f9fe08f3fa1abda7d326ab.png

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的那个一维数组的长度

}

}

48304ba5e6f9fe08f3fa1abda7d326ab.png

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

1. 条件分支语句

48304ba5e6f9fe08f3fa1abda7d326ab.png

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("不及格");

}

}

}

48304ba5e6f9fe08f3fa1abda7d326ab.png

2. 循环语句

48304ba5e6f9fe08f3fa1abda7d326ab.png

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);

}

}

48304ba5e6f9fe08f3fa1abda7d326ab.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/372252.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Maven的鸟瞰图

我们每天要做的一件事是使用Maven通过发出诸如mvn install之类的构建命令来构建我们的项目。 然后&#xff0c;Maven查看我们项目的配置文件&#xff08;亲切地称为POM&#xff09;&#xff0c;神奇地找出要执行的操作&#xff0c;并且&#xff0c;嘿&#xff0c;您的构建已完成…

node源码详解(五)

本作品采用知识共享署名 4.0 国际许可协议进行许可。转载保留声明头部与原文链接https://luzeshu.com/blog/nodesource5 本博客同步在https://cnodejs.org/topic/56ed6735b705742136388fa6 本博客同步在http://www.cnblogs.com/papertree/p/5295344.html 在上一篇博客&#xff…

51Nod - 1381 硬币游戏

51Nod - 1381 硬币游戏 有一个简单但是很有趣的游戏。在这个游戏中有一个硬币还有一张桌子&#xff0c;这张桌子上有很多平行线&#xff08;如下图所示&#xff09;。两条相邻平行线之间的距离是1&#xff0c;硬币的半径是R&#xff0c;然后我们来抛硬币到桌子上&#xff0c;抛…

javascript 相关小的知识点集合

本文主要是列出一些javascript 相关的&#xff0c;不限于javascript的&#xff0c;容易记错或者遗忘的小知识&#xff0c;小技巧。 1、javascript中的false 在 JavaScript&#xff0c;常见的 false 值&#xff1a; 0, 0, 0, -0, false, ,null,undefined,NaN 要注意空数组([])和…

AOS – 另外一个独特的页面滚动动画库(CSS3)

AOS 是一个用于在页面滚动的时候呈现元素动画的工具库&#xff0c;你可能会觉得它和 WOWJS 一样&#xff0c;的确他们效果是类似的。但是AOS是 CSS3 动画驱动的库&#xff0c;当你滚动页面的时候能让元素动起来&#xff0c;当页面滚回顶部的时候&#xff0c;元素能够回到前一个…

JavaFX 2.0 Hello World

在讨论示例本身之前&#xff0c;我想向您展示如何在NetBeans中创建JavaFX应用程序。 &#xff08;如果尚未安装JavaFX和NetBeans&#xff0c;请参阅我以前的文章《 安装JavaFX 2.0和NetBeans 7.7.1》 &#xff09;单击“文件”菜单中的“新建项目”以打开项目向导。 然后选择“…

java 线程强制停止线程_java多线程之停止线程

在多线程开发中停止线程是非常重要的技术点。停止线程在Java语言中并不像break语句那样干脆。须要一些技巧性的处理。一、 异常法採用异常法来停止一个线程。首先我们须要了解一下两个方法的使用方法&#xff1a;1、interrupt()方法public class MyThread extends Thread{Over…

双系统Ubuntu分区扩容过程记录

本人电脑上安装了Win10 Ubuntu 12.04双系统。前段时间因为在Ubuntu上做项目要安装一个比较大的软件&#xff0c;导致Ubuntu根分区的空间不够了。于是&#xff0c;从硬盘又分出来一部分空间&#xff0c;分给Ubuntu。于是有了这篇Ubuntu扩容过程记录&#xff0c;也可以当作是一篇…

安装JAVA8要登录_JDK8的安装及环境配置

原文链接:https://www.cnblogs.com/chenxj/p/10137221.html1、下载JDK&#xff1b;b、或百度网盘&#xff1a;链接&#xff1a;https://pan.baidu.com/s/1S14y4_3eN9G6oOVfhmbe_w提取码&#xff1a;0cf62、双击安装程序&#xff0c;点击下一步安装目录若不修改&#xff0c;可直…

早期访问中带有NetBeans的Oracle公共云Java服务

谁期望发生这种情况&#xff1a;Oracle正在开发公共云产品&#xff0c;并且即将开始正式启动的迹象已经出现。 在正式宣布之后将近一年&#xff0c;我被邀请加入所谓的“抢先体验”计划&#xff0c;以试驾新服务并提供反馈。 多亏负责产品的经理Reza Shafii &#xff0c;我才可…

App Engine中的Google Services身份验证,第2部分

在本教程的第一部分中&#xff0c; 我描述了如何使用OAuth进行Google API服务的访问/身份验证。 不幸的是&#xff0c;正如我稍后发现的那样&#xff0c;我使用的方法是OAuth 1.0&#xff0c;显然现在Google正式弃用了OAuth 1.0&#xff0c;改用OAuth 2.0版本。 显然&#xff0…

[51nod1297]管理二叉树

一个初始为空的二叉搜索树T&#xff0c;以及1到N的一个排列P: {a1, a2, ..., aN}。我们向这个二叉搜索树T添加这些数&#xff0c;从a1开始, 接下来是 a2, ...&#xff0c; 以aN结束。在每一个添加操作后&#xff0c;输出T上每对节点之间的距离之和。例如&#xff1a;4 7 3 1 8 …

Java Swing中的聊天气泡

本文将向您解释“如何在Java swing应用程序中绘制聊天气泡&#xff1f;” 聊天气泡与呼出气泡或思想气泡相同。 今天&#xff0c;大多数聊天应用程序都以这种格式显示转换&#xff0c;因此本文将帮助您在用Java swing创建的桌面应用程序中进行相同的操作。 以下课程用于绘制第一…

java内存模型按照线程隔离性_深入理解Java多线程与并发框(第③篇)——Java内存模型与原子性、可见性、有序性...

一、Java内存模型Java Memory Modle&#xff0c;简称 JMM&#xff0c;中文名称 Java内存模型&#xff0c;它是一个抽象的概念&#xff0c;用来描述或者规范访问内存变量的方式。因为各中计算机的操作系统和硬件不同&#xff0c;方式机制也可能不同&#xff0c;Java内存模型用于…

ZK实际应用:样式和布局

在之前的ZK in Action帖子中&#xff0c;我们使用ZK MVVM实现了CRUD功能 。 我们还快速浏览了一些样式代码&#xff0c;可能需要更多的解释。 在本文中&#xff0c;我们将讨论如何在ZK小部件上附加新CSS样式规则&#xff0c;以及如何覆盖现有样式。 我们还将介绍ZK中UI布局的一…

Tornado(一)

Tornado 特点 Tornado是一个用Python写的相对简单的、不设障碍的Web服务器架构&#xff0c;用以处理上万的同时的连接口&#xff0c;让实时的Web服务通畅起来。虽然跟现在的一些用Python写的Web架构相似&#xff0c;比如Django&#xff0c;但Tornado更注重速度&#xff0c;能够…

Android下Opengl ES实现单屏幕双眼显示

http://blog.csdn.net/u011371324/article/details/68946779 默认情况下&#xff0c;Opengl ES使用系统提供的帧缓冲区作为绘图表面&#xff0c;一般情况下&#xff0c;如果只在屏幕的表面绘图的话&#xff0c;系统提供的默认帧缓冲区很高效&#xff0c;但是很多应用程序需要渲…

Oracle Service Bus –线程阻塞案例研究

本案例研究描述了在AIX 6.1和IBM Java VM 1.6上运行的Oracle Service Bus 11g遇到的线程阻塞问题的完整根本原因分析过程。 本文也是您提高线程转储分析技能的绝佳机会&#xff0c;我强烈建议您学习并正确理解以下分析方法。 与过早的中间件&#xff08;Weblogic&#xff09;重…

java 可以重载等于号码_Java面试之Java基础4——重载与重写的区别

目录重载与重写的概念重载与重写的区别重载与重写的总结构造器是否能被重写override为什么函数不能根据返回类型来区分重载重载与重写的概念重载&#xff1a;同样一个方法可以根据输入参数列表的不同&#xff0c;做出不同的处理。普通方法和构造器方法都能够重载。方法重载&…

二维数组、多维数组

二维数组&#xff1a; 定义二维数组 int[,] myArray new int[几个一维数组,数组中的个数]; 数组可以具有多个维度。例如&#xff0c;下列声明创建一个四行两列的二维数组(可以理解为4个1维数组&#xff0c;数组中包含2个元素)&#xff1a; int[,] myArray new int[4,2]; int[…