Java基本语法:

1):Java语言严格区分大小写,好比main和Main是完全不同的概念。
2):一个Java源文件里可以定义多个Java类,但其中最多只能有一个类被定义成public类。若源文件中包括了public类,源文件必须和该public类同名。
3):一个源文件中包含N个Java类时,成功编译后会生成N份字节码文件,即每个类都会生成一份单独的class文件,且字节码文件名和其对应的类名相同。
4):若一个类必须运行,则必须拥有main方法,因为main方法是程序的入口.

编程建议:

一个Java源文件只定义一个类,不同的类使用不同的源文件定义;

将每个源文件中单独定义的类都定义成public的;

保持Java源文件的主文件名与源文件中的类名一致;

注释类型

单行注释:// ; //注释信息,从//开始到本行结束的所有字符会被编译器忽略;
多行注释:/* */;/* 注释信息 */之间的所有字符会被编译器忽略
文档注释:/** */;/** 注释信息 */和多行注释一样,除此之外还可以专门生成文档信息API。

关键字:

在编程语言中有一些事先定义的,有着特殊含义和用途的单词。

保留字:

和关键字一样都是编程语言事先定义好的,只是说现在暂时没有特殊的用途,但说不定以后某天会突然被赋予意义和被使用到,因此被保留下来的单词,goto和const就是Java的保留字。

注意

关键字和保留字都是由小写组成

Java语言分隔符:

分号(;):语句的分割,表示一句话结束,好比咱们使用的句号。
花括号({}):表示一个代码块,是一个整体,花括号要成对使用。
方括号([]):定义数组和访问数组元素时使用。
圆括号(()):使用很广泛,具体用到细讲。
圆点(.):类和对象访问它的成员时使用。
空格( ):把一整条语句分割成几段,空格的次数不限制,好比一句英文里单词都要分开写一样。
注意:必须都是半角下的英文符号。;ab;ab

标识符:

在写代码的时候为了增强代码的阅读性会自定义很多名字,比如:类名,方法名,变量名等。 在编程的里我们把这种为了增强程序阅读性而自定义的名称,称为标识符。

标识符命名规则:

① 由字母、数字、下划线、$组成,但不能以数字开头(注:此处的字母可以是中文、日文等)。

② 大小写敏感。

③ 不得使用java中的关键字和保留字。

④ 不用Java中内置的类名作为自己的类名。

其实,大家也没必要记这么多,使用一个非关键字和保留字的有意义的英文单词就很OK了。 注意问题:类名首字符规范是大写的.

常量:

程序中固定不变化的值。

常量分类:

字面值常量: 比如:整数常量1,2,3,小数常量3.14,布尔常量false,true等。. 字面量,就表示直接给出的一个值(可以是整数,小数,true,false等等),

直接量. 定义的final变量:

变量

变量的定义:

表示存储空间,可用来存放某一类型的常量,没有固定值,并可以重复使用,也可以用来存储某种类型的未知数据。 好比饭店雅间的名字.

变量的特点:

① 占据着内存中的某一块存储区域;

② 该区域有自己的名称(变量名)和类型(数据类型);

③ 可以被重复使用;

④ 该区域的数据可以在同一类型范围内不断变化;

变量的定义:

a.先定义变量,再赋值:数据类型 变量名; 变量名 = 值

b.在声明时同时赋值: 数据类型 变量名 = 初始化值;

注:格式是固定的,记住格式,以不变应万变。

不推荐:同时定义多个变量.

变量的分类:

随着变量定义在类中的位置不同,故把变量分成两大类:

成员变量:直接定义在类里的变量,又称为全局变量或字段。

局部变量:变量除了成员变量之外,其他就是局部变量。根据定义的位置不同有3种表现形式:方法形参,方法内变量,代码块变量。

变量作用域:

指变量的存在范围,只有在这个范围内,程序代码才能访问它。当一个变量被定义时,它的作用域就确定了: 作用域是定义开始到定义所在的花括号结束;

变量使用规则:

1.变量必须先声明,并且初始化后才能使用;

2.声明变量必须有数据类型

3.同一作用域内变量名不能重复定义

表达式(expression):

是由数字、运算符、数字分组符号(括号)、常量、变量等以能求得结果的有意义排列的组合。 用运算符号连接的变量/常量可称为表达式。那么也就是说表达式是由常量、变量、运算符、括号组成能求得值的有意义结果的语句。

表达式中操作数进行运算得到的最终结果就是表达式的结果。。

表达式的运算顺序(大多和数学一样,参照后面的运算符操作优先级):

数据类型和分类

在Java中数据类型整体上分成两大类:

1):基本数据类型/原生数据类型,共8个:

1>:数值型: 整数类型:byte,short,int,long, 不同的整数类型在内存占用的内存空间大小是不一样的. 小数类型:float,double.

2>:字符型:char,什么是字符,字母/符号.

3>:布尔型:boolean,表示对与错.true,false.

2):引用数据类型/对象数据类型: 类/接口/数组

boolean类型:

通常用于逻辑运算和程序流程控制(条件选择/循环)。 该类型的值只能是true 或 false,表示真或假。 不可以使用0或非0的整数来代替false和true,区分于C语言。 (其实在JVM中对boolean的处理也是用0表示false,非0表示true的。)

false和true是boolean的常量。

整数类型(byte-short-int-long):

byte、short、int、long类型: 整型常量的四种表示形式:

① 二进制整数:0B或0b开头(Java7的新特性),如:int a = 0B110;

② 八进制整数:要求以0开头,如 int a = 012;

③ 十进制整数:如:int a = 17;

④ 十六进制整数:要求0X或0x开头,如int a = 0x12;

Java语言的整型常量默认是int型,声明long型变量后加上‘l’或‘L,因小写的l容易和数字1相混淆,建议使用大写L。 默认情况下,一个整型的字面量默认是int类型.

byte,short,int,long唯一的不同就是存储空间的容量大小不一样.根据具体需要存储的数据去选择合适的数据类型, 一般的,使用int即可.

小数类型(float-double):

float、double类型: 表示小数类型又称为浮点类型,其中float表示单精度类型,double表示双精度类型,但是二者都不能表示精确的小数。

Java的浮点类型常量有两种表现形式:

十进制形式: 例如:3.14 ,168.0, .618

科学计数法形式: 例如:3.14e2, 3.14E2, 1000E-2 科学计数法表达式返回的结果是double类型。 默认情况下,一个浮点类型的字面量默认是double类型.若要声明一个常量为float型,则需在常量后加上f 或 F,double常量后面的D或d可省略。

注意:Java里只有浮点型的变量才可以接受科学计算式结果: 因为float和double都不能精确的表示小数,那么在精度要求高的系统比如银行系统里,那怎么表示精确的小数呢?用BigDecimal类型,它表示任意精度的数据。

字符类型(char):

字符,字母和符号.

char类型:表示16位的无符号整数或者Unicode字符,Java对字符采用Unicode字符编码。 Unicode收集了世界上所有语言文字中的符号,是一种跨平台的编码方式,Java的字符占两个字节,可以表示一个汉字。

什么是编码?

计算机只能表示0和1两个数,于是人们做规定使用一个数字去表示一个特定的字符,比如a使用97表示。 char前256个字符和ASCII(美国信息交互标准编码)码中的字符重复。

char常量有3种表示形式:

① 直接使用单个字符来指定字符常量,格式如'◆'、'A','7';

② 直接作为十进制整数数值使用,但是数据范围在[0,65535],格式如97,但是打印出来的值依然是ASCII码表对于的符号,如97打印出来是字符a。

③ 和2一样,只不过表示的是16进制的数值,格式如'\uX',X表示16进制整数;如:97的16进制是61。那么表示为‘\u0061’打印出来也是a。 所以有人说char本质上也是整型,也是有道理的。 char前256个字符和ASCII(美国信息交互标准编码)码中的字符重复,可查表。

最常用的引用类型-String

除了8种基本数据类型,其他所有类型都是引用数据类型,包括类、接口、数组。引用数据类型默认初始值都是null。

String是一个类,表示字符串,所谓字符串,就是一串字符,也就是N个字符连接在一起(N可以表示0或多个),好比羊肉串。

字符串都得使用 "" 括起来的,连接字符串使用 “+”符号。

字符串拼接:字符串和任意数据类型相连接,结果都是字符串类型.

 System.out.println(8 + 7 + "Hello");//结果是 15hello
System.out.println("Hello" + 7 + 8);//结果是 hello78
System.out.println(7 + "Hello" + 8);//结果是 7hello8
String str = 17 + "ABC";//组成一个新的字符串 17ABC
System.out.println(str);
String str2 = (String)17 + "ABC";//编译错误: 不可转换的类型

数据过大和溢出

当要表示的数据超出数据类型的临界范围时,称为溢出。

溢出情况发生时程序并没有做数据范围检查处理,此时会出现数据紊乱情况。 int最大值 int intMax = 2147483647;

基本数据类型转换

在8大基本数据类型中,boolean不属于数值类型,不参与转换

转换规则其实就是各自数据类型的空间大小.看图 把不同的数据类型看成是不同容量的容器.

byte是1个字节,最多只能装1斤水.

short是2个字节,最多只能装2斤水.

自动类型转换,也称为“隐式类型转换:

当把小数据范围类型的数值或变量赋给另一个大数据范围类型变量,系统可以完成自动类型转型。这好比把装一斤水容器里的水倒进可以装两斤水的容器里一样。

再次强调:boolean 类型是不可以转换为其他数据类型。

一般的,byte,short,char不参与转换操作. 我们直接把byte,short,char直接付给int类型.

强制类型转换,也称为“显示类型转换”:

当把大范围类型的数值或变量赋给另一个小范围类型变量时,此时系统不能自动完成转换,需要加上强制转换符,但这样的操作可能造成数据精度的降低或溢出,所以使用时要格外注意。 这就好比把装两斤水容器里的水倒在可以装一斤水的容器里,是可能造成水溢出的。 若要坚持把4斤苹果塞进一个装3斤的袋子里,我们要怎么办?动用暴力。

强制类型转换,可能造成溢出和精度损失

表达式类型的自动提升

当一个算术表达式中包含多个基本数据类型(boolean除外)的值时,整个算术表达式的数据类型将在数据运算时出现类型自动提升,

其规则是:

所有的byte、short、char类型被自动提升到int类型; 整个表达式的最终结果类型被提升到表达式中类型最高的类型;

 double d1 = 123 + 1.1F + 99L + 3.14;
System.out.println('a' + 1);//
byte b = 22;
b = b + 11;//编译出错,此时结果类型应该是int

Java基础 变量和数据类型及相关操作的更多相关文章

  1. Java基础——变量、数据类型

    一 .变量 1.计算机的内存类似于人的大脑,计算机使用内存来记忆大量运算时要使用数据.内存是一个物理设备,如何来存储一个数据呢?很简单,把内存想象成一间旅馆,要存储的数据就好比要住宿的客人. 首先,旅 ...

  2. JavaScript 基础 (变量声明, 数据类型, 控制语句)

    创建: 2017/09/16 更新: 2017/09/24 更改标题 [JavaScript 概要]-> [JavaScript 基础] 完成: 2017/09/25 更新: 2017/10/0 ...

  3. Java基础-变量的定义以及作用域详解

    Java基础-变量的定义以及作用域详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.字面量 常量(字面量)表示不能改变的数值(程序中直接出现的值).字面量有时也称为直接量,包 ...

  4. Java基础复习笔记系列 七 IO操作

    Java基础复习笔记系列之 IO操作 我们说的出入,都是站在程序的角度来说的.FileInputStream是读入数据.?????? 1.流是什么东西? 这章的理解的关键是:形象思维.一个管道插入了一 ...

  5. Java基础-IO流对象之内存操作流(ByteArrayOutputStream与ByteArrayInputStream)

    Java基础-IO流对象之内存操作流(ByteArrayOutputStream与ByteArrayInputStream) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.内存 ...

  6. Java 语言基础 (初识Java语言, 变量和数据类型, 运算符, 流程控制语句, 数组)

    初始 Java 语言 Java SE -- Java Platform, Standard Edition 是 Java 平台的基础 Java SE 以前称为 J2SE, 可以编写桌面应用和基于 we ...

  7. Python基础语法,基本数据类型及相关操作

    ---恢复内容开始--- python文件 文件开头要有  #!/usr/bin/ python        --在linux中是告诉系统phthon的路径是在/usr/bin/ python目录下 ...

  8. JAVA基础——变量和常量

    JAVA的变量和常量知识总结 一.认识java标识符 标识符就是用于给 Java 程序中变量.类.方法等命名的符号. 使用标识符时,需要遵守几条规则: 1.  标识符可以由字母.数字.下划线(_).美 ...

  9. Java 基础 变量和运算符

    Java基础语法   第1章 变量 1.1 变量概述 1.2 计算机存储单元 1.3 基本类型之4类8种 1.4 常量与类型 1.5 定义变量(创建变量) 1.6 变量使用的注意事项 1.7 数据类型 ...

随机推荐

  1. 静态方法不能使用this的原因 当没有实例对象时候 在静态方法里面传入this时会出现空指针异常现象 所以为了防止该现象 静态方法里面不能使用this

    静态方法不能使用this的原因 当没有实例对象时候 在静态方法里面传入this时会出现空指针异常现象 所以为了防止该现象 静态方法里面不能使用this

  2. 可持久化Treap

    终于写了一次可持久化Treap,做的是可持久化序列的模板题. Treap Treap=Tree+Heap,是一个随机化的数据结构.它的每个节点至少有两个关键字,一个是我们要存储的\(val\),一个是 ...

  3. vdbench-自动化测试脚本

    #!/usr/bin/python # -*- coding:utf8 -*- import sys import commands TEST_CONF=""" hd=d ...

  4. cf 460 E. Congruence Equation 数学题

    cf 460 E. Congruence Equation 数学题 题意: 给出一个x 计算<=x的满足下列的条件正整数n的个数 \(p是素数,2 ≤ p ≤ 10^{6} + 3, 1 ≤ a ...

  5. 洛谷 P3952 时间复杂度 解题报告

    P3952 时间复杂度 题目描述 小明正在学习一种新的编程语言A++,刚学会循环语句的他激动地写了好多程序并 给出了他自己算出的时间复杂度,可他的编程老师实在不想一个一个检查小明的程序, 于是你的机会 ...

  6. CodeForces.158A Next Round (水模拟)

    CodeForces.158A Next Round (水模拟) 题意分析 校赛水题的英文版,坑点就是要求为正数. 代码总览 #include <iostream> #include &l ...

  7. 【树状数组】【P2345】 奶牛集会

    传送门 Description 约翰的\(N\)头奶牛每年都会参加"哞哞大会".哞哞大会是奶牛界的盛事.集会上的活动很多,比如堆干草,跨栅栏,摸牛仔的屁股等等.它们参加活动时会聚在 ...

  8. SFM

    1.相机模型,内参数和外参数矩阵,相机标定: 2.极线约束和本征矩阵:特征点提取与匹配:提取到的特征点计算本征矩阵(五对以上的点)findEssentialMat(),需啊要点对,焦距参数,cx,cy ...

  9. simpleDateFormat的 学习

    http://blog.csdn.net/qq_27093465/article/details/53034427

  10. linux-柔性数组

    柔性数组:在C99定义的结构体中,最后一个元素允许是未知大小(或者是0)的数组,它不占用结构体任何内存,这个数组叫做柔性数组,柔性数组前必须至少有一个其它成员. 使用方式: #include<s ...