常量与变量

常量值又称为字面常量,它是通过数据直接表示

常量

实型常量值

Java 的实型常量值主要有如下两种形式

十进制数形式:由数字和小数点组成,且必须有小数点,如 12.34、-98.0

科学记数法形式:如 1.75e5 或 32&E3,其中 e 或 E 之前必须有数字,且 e 或 E 之后的数字必须为整数。

布尔型常量值

Java 的布尔型常量只有两个值,即 false(假)和 true(真)

字符型和字符串常量值

Java 的字符型常量值是用单引号引起来的一个字符,如 'e'、E'。需要注意的是,Java 字符串常量值中的单引号和双引号不可混用。双引号用来表示字符串,像 "11"、"d" 等都是表示单个字符的字符串。

定义常量

常量不同于常量值,它可以在程序中用符号来代替常量值使用,因此在使用前必须先定义。Java 语言使用 final 关键字来定义一个常量。

语法如下所示:

final dataType variableName
final int COUNT=10

变量

变量是用来描述一条信息的别名,示例如下:

DataType identifier=value; 或 DataType identifier;
String name;
String name = "HelloWorld.Link"

变量的作用域

根据作用域的不同,一般将变量分为不同的类型:类变量、局部变量、方法参数变量等。

类变量

类变量也称为成员变量,声明在类中,不属于任何一个方法,作用域是整个类。示例如下:

public class HelloWorld
{
private int age=20; //定义类变量 price
private String name; //定义类变量 name
}

局部变量

局部变量是指在方法或者方法代码块中定义的变量,其作用域是其所在的代码块。

public class HelloWorld
{
public static void main(String[] args)
{
int age=30;
if(age>10)
{
int test=3; //声明一个int类型的局部变量,只能在if内使用
}
}
}

方法参数变量

作为方法参数声明的变量的作用域是整个方法。

public class HelloWorld
{
public static void test(int input) //声明一个方法参数变量,只能在方法体内使用
{
System.out.println("input="+ input);
}
}

数据类型

整数类型

Java 定义了 4 种整数类型变量:字节型(byte)、短整型(short)、整型(int)和长整型(long)。有符号的值,正数或负数。

字节型(byte)

byte 类型是最小的整数类型。当用户从网络或文件中处理数据流时,或者处理可能与 Java 的其他内置类型不直接兼容的未加工的二进制数据时,该类型非常有用。

短整型(short)

short 类型限制数据的存储为先高字节,后低字节,这样在某些机器中会出错,因此该类型很少被使用。

整型(int)

int 类型是最常使用的一种整数类型。

长整型(long)

对于大型程序常会遇到很大的整数,当超出 int 类型所表示的范围时就要使用 long 类型。

示例如下:

public static void main(String[] args)
{
byte h=10; //声明一个byte类型的变量并赋予初始值为10
short e=20; //声明一个short类型的变量并赋予初始值为20
int l=30; //声明一个int类型的变量并赋予初始值为30
long o=40; //声明一个long类型的变量并赋予初始值为40
}

浮点类型

浮点类型是带有小数部分的数据类型,也叫实型。浮点型数据包括单精度浮点型(float)和双精度浮点型(double),代表有小数精度要求的数字。单精度浮点型(float)和双精度浮点型(double)之间的区别主要是所占用的内存大小不同,float 类型占用 4 字节的内存空间,double 类型占用 8 字节的内存空间。双精度类型 double 比单精度类型 float 具有更高的精度和更大的表示范围。

public static void main(String[] args)
{
double a=2348.4; //定义double类型的变量
float b=0.01; //定义float类型的变量
}

布尔类型

布尔类型(boolean)用于对两个数值通过逻辑运算,判断结果是“真”还是“假”。

boolean a=true;
boolean b=false;

字符类型

Java 语言中的字符类型(char)使用两个字节的 Unicode 编码表示,它支持世界上所有语言,可以使用单引号字符或者整数对 char 型赋值。

char a='D';
char b='5';

运算符

算数运算符

运算符按照操作数的数量可以分为单目运算符、双目运算符和三目运算符。算术运算符的功能是进行算术运算,除了经常使用的加(+)、减(-)、乘()和除(\)外,还有取模运算(%)。加(+)、减(-)、乘()、除(\)和我们平常接触的数学运算具有相同的含义。求余运算(%)是指连接两个变量或常量以进行除法运算,结果取它们的余数。

int a=4,b=2,c=3;
int d=a*(b+c)%c; //最终d为:2

赋值运算符

赋值运算符是指为变量或常量指定数值的符号。赋值运算符的符号为“=”,它是双目运算符,左边的操作数必须是变量,不能是常量或表达式。赋值运算符与其他运算符一起使用,可以表达多种赋值运算的变异效果。

+= 将该运算符左边的数值加上右边的数值, 其结果赋值给左边变量本身

-= 将该运算符左边的数值减去右边的数值, 其结果赋值给左边变量本身

*= 将该运算符左边的数值乘以右边的数值, 其结果赋值给左边变量本身

/= 将该运算符左边的数值整除右边的数值, 其结果赋值给左边变量本身

%= 将该运算符左边的数值除以右边的数值后取余,其结果赋值给左边变量本身

int a=5; a+=2; //a=7
int a=5; a-=2; //a=3
int a=5; a*=2; //a=10
int a=5; a/=2; //a=2
int a=5; a%=2; //a=1

逻辑运算符

逻辑运算符把各个运算的关系表达式连接起来组成一个复杂的逻辑表达式,以判断程序中的表达式是否成立,判断的结果是 true 或 false。逻辑运算符包括 &&、||、!。其中 && 和 || 是双目运算符,实现逻辑与、逻辑或;!是单目运算符,实现逻辑非。

int x=1;y=99
x>0 && x<=100 //输入ture

关系运算符

关系运算符用来比较两个值的关系。关系运算符是二元运算符,运算结果是 boolean 型。当运算符对应的关系成立时,运算结果是 true,否则是 false。> 大于运算符,>= 大于或等于运算符,<小于运算符,<=小于或等于运算符,==相等运算符,!=不相等运算符

2>3   //false
4>=2 //true
2<3 //true
4<=2 //false
4==4 //true
4!=2 //true

自增和自减运算符

在对一个变量做加 1 或减 1 处理时,可以使用自增运算符 ++ 或自减运算 --。++ 或 -- 是单目运算符,放在操作数的前面或后面都是允许的。++ 与 -- 的作用是使变量的值增 1 或减 1。操作数必须是一个整型或浮点型变量。i++将 i 的值先使用再加 1 赋值给 i 变量本身,++i 将 i 的值先加 1 赋值给变量 i 本身后再使用,i--将 i 的值先使用再减 1 赋值给变量 i 本身,--i 将 i 的值先减 1 后赋值给变量 i 本身再使用

int i=1;
int j=i++;//i为2,j为1
int x=1;
int y=++x;//x为2,y为2
int a=1;
int b=a--;//a为0,b为1
int c=1;
int d=--c;//c为0,d为0

位运算符

位逻辑运算符包含 4 个:&(与)、|(或)、~(非)和 ^(异或)。除了 ~(即位取反)为单目运算符外,其余都为双目运算符。& 按位进行与运算,|按位进行或运算,^按位进行异或运算,~按位进行取反运算

4 & 5 //结果:4
4 | 5 //结果:5
4 ^ 5 //结果:1
~ 4 //结果:-5

条件运算符

条件运算符的符号表示为“?:”,使用该运算符时需要有三个操作数,因此称其为三目运算符。

int x,y,z;
x=6,y=2;
z=x>y?x-y:x+y;//z为4

数据类型转换

数据类型的转换是在所赋值的数值类型和被变量接收的数据类型不一致时发生的,它需要从一种数据类型转换成另一种数据类型。数据类型的转换可以分为隐式转换(自动类型转换)和显式转换(强制类型转换)两种。

隐式转换

自动类型转换的实现需要同时满足两个条件:①两种数据类型彼此兼容,②目标类型的取值范围大于源数据类型(低级类型数据转换成高级类型数据)。例如 byte 类型向 short 类型转换时,由于 short 类型的取值范围较大,会自动将 byte 转换为 short 类型。

int a=1;
int b=2;
double c=a+b;//c为3.00

显式转换

当两种数据类型不兼容,或目标类型的取值范围小于源类型时,自动转换将无法进行,这时就需要进行强制类型转换。

int a=3;
double b=5.0;
a=(int)b;//a为5

Java入门教程二(语言基础)的更多相关文章

  1. JavaScript 入门教程四 语言基础【3】

    一.数据类型介绍: String 1.是使用 Unicode 字符组成的字符序列.所以可以容纳各种语言. 2.字符串可以使用双引号(“”)或者单引号('')表示,但必须成对出现. 3.转移序列使用 \ ...

  2. JavaScript 入门教程三 语言基础【1】

     一.基本介绍 1.JavaScript 是一种区分大小写的语言.(var Hello 与 var hello 是不同的变量) 2.JavaScript 中标志符就是指变量.函数.属性的名字,或者函数 ...

  3. JavaScript 入门教程四 语言基础【2】

    一.数据类型介绍: undefined null NaN 1.判断当前变量是否为 undefined: if (i === undefined) 或者 if (typeof (i) === " ...

  4. [Java入门笔记] 面向对象编程基础(二):方法详解

    什么是方法? 简介 在上一篇的blog中,我们知道了方法是类中的一个组成部分,是类或对象的行为特征的抽象. 无论是从语法和功能上来看,方法都有点类似与函数.但是,方法与传统的函数还是有着不同之处: 在 ...

  5. Java入门(二)——果然断更的都是要受惩罚的。。。

    断更了一个多月,阅读量立马从100+跌落至10-,虽说不是很看重这个,毕竟只是当这个是自己的学习笔记,但有人看,有人评论,有人认同和批评的感觉还是很巴适的,尤其以前有过却又被剥夺的,惨兮兮的. 好好写 ...

  6. 无废话ExtJs 入门教程二[Hello World]

    无废话ExtJs 入门教程二[Hello World] extjs技术交流,欢迎加群(201926085) 我们在学校里学习任何一门语言都是从"Hello World"开始,这里我 ...

  7. SpringBoot入门教程(二)CentOS部署SpringBoot项目从0到1

    在之前的博文<详解intellij idea搭建SpringBoot>介绍了idea搭建SpringBoot的详细过程, 并在<CentOS安装Tomcat>中介绍了Tomca ...

  8. mongodb入门教程二

    title: mongodb入门教程二 date: 2016-04-07 10:33:02 tags: --- 上一篇文章说了mongodb最基本的东西,这边博文就在深入一点,说一下mongo的一些高 ...

  9. Java入门(二):注释和基本数据类型

    上次通过eclipse在控制台输出了hello world,是不是有点小激动啊,今天接着介绍Java基础知识. 一.Java注释 1.Java注释语句不会被编译器运行,不用担心代码因为许多注释语句显得 ...

随机推荐

  1. SpringMVC访问出错No converter found for return value of type

    在使用SSM整合的时候,spring mvc 添加@ResponseBody的时候,正常情况下都会返回json的.但是又的时候如果没有配置好的话,如果想要返回Map的json对象会报:No conve ...

  2. Codeforces 1295E Permutation Separation

    题目链接 link Solution 暴力一眼就可以看出来,枚举分界点,然后左右两边统计答案即可,但复杂度是我们无法接受的 然后我们看我们可以优化哪一部分 \(1^0\) 枚举:这部分没有办法优化 \ ...

  3. Flume(三) —— 断点续传 与 事务

    断点续传 # Name the components on this agent a1.sources = r1 a1.sinks = k1 a1.channels = c1 # Describe / ...

  4. Nginx_安全2

    Nginx与安全有关的配置 隐藏版本号 http {    server_tokens off;} 经常会有针对某个版本的nginx安全漏洞出现,隐藏nginx版本号就成了主要的安全优化手段之一,当然 ...

  5. Estimating Gene Frequencies| method of maximum likelihood|point estimate

    I.11 Estimating Gene Frequencies 在小样本上计算基因A的概率PA,举例如下: 通过加大样本会将通过观察值得到的数趋近于真实数据,所以该问题转化为了统计学上利用大量观察值 ...

  6. 01-信贷路由项目架构和 rose 框架的搭建

    1.信贷路由项目架构 2.工程搭建及测试 搭建tyrRouter-parent,tyrRouter-log-web,工程采用 maven 构建 配置 pom.xml 文件,父项目管理 jar 包的版本 ...

  7. TCP、UDP、HTTP与HTTPS

    TCP.UDP.HTTP与HTTPS都是通信协议,在这里首先先介绍一下什么是通信协议. 什么是通信协议? 通信协议(communications protocol)是指双方实体完成通信或服务所必须遵循 ...

  8. 80)PHP,扩展工具类

    啥是扩展工具类:这个问题很深奥,自己慢慢理解吧. 首先  对于session的处理函数是扩展工具类. ②图片处理类 ③验证码生成类 ④算是项目中的一个功能模块. 扩展工具类   放在我们的framew ...

  9. 吴裕雄--天生自然python学习笔记:python文档操作自动查找替换 Word 文件中的指定文字

    Win32com 组件提供了自动替换 Word 文件中指定文字 的功能 .在使用“查找” 功能替换文字之前,可先清除源文字及目标文字的格式,以免影响替换效果,语法为 : 替换 Word 文件特定文字的 ...

  10. Jump Game (Medium)

    主要有两种思路: 一. 本题只需要判断能否到达最后一个数,那么可以采用贪心策略,到达某个位置i后,在直接在这个位置的基础上走nums[i]步,主要保证能一直前进,就能达到终点: 那么,什么时候才不能一 ...