Java入门教程二(语言基础)
常量与变量
常量值又称为字面常量,它是通过数据直接表示
常量
实型常量值
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入门教程二(语言基础)的更多相关文章
- JavaScript 入门教程四 语言基础【3】
一.数据类型介绍: String 1.是使用 Unicode 字符组成的字符序列.所以可以容纳各种语言. 2.字符串可以使用双引号(“”)或者单引号('')表示,但必须成对出现. 3.转移序列使用 \ ...
- JavaScript 入门教程三 语言基础【1】
一.基本介绍 1.JavaScript 是一种区分大小写的语言.(var Hello 与 var hello 是不同的变量) 2.JavaScript 中标志符就是指变量.函数.属性的名字,或者函数 ...
- JavaScript 入门教程四 语言基础【2】
一.数据类型介绍: undefined null NaN 1.判断当前变量是否为 undefined: if (i === undefined) 或者 if (typeof (i) === " ...
- [Java入门笔记] 面向对象编程基础(二):方法详解
什么是方法? 简介 在上一篇的blog中,我们知道了方法是类中的一个组成部分,是类或对象的行为特征的抽象. 无论是从语法和功能上来看,方法都有点类似与函数.但是,方法与传统的函数还是有着不同之处: 在 ...
- Java入门(二)——果然断更的都是要受惩罚的。。。
断更了一个多月,阅读量立马从100+跌落至10-,虽说不是很看重这个,毕竟只是当这个是自己的学习笔记,但有人看,有人评论,有人认同和批评的感觉还是很巴适的,尤其以前有过却又被剥夺的,惨兮兮的. 好好写 ...
- 无废话ExtJs 入门教程二[Hello World]
无废话ExtJs 入门教程二[Hello World] extjs技术交流,欢迎加群(201926085) 我们在学校里学习任何一门语言都是从"Hello World"开始,这里我 ...
- SpringBoot入门教程(二)CentOS部署SpringBoot项目从0到1
在之前的博文<详解intellij idea搭建SpringBoot>介绍了idea搭建SpringBoot的详细过程, 并在<CentOS安装Tomcat>中介绍了Tomca ...
- mongodb入门教程二
title: mongodb入门教程二 date: 2016-04-07 10:33:02 tags: --- 上一篇文章说了mongodb最基本的东西,这边博文就在深入一点,说一下mongo的一些高 ...
- Java入门(二):注释和基本数据类型
上次通过eclipse在控制台输出了hello world,是不是有点小激动啊,今天接着介绍Java基础知识. 一.Java注释 1.Java注释语句不会被编译器运行,不用担心代码因为许多注释语句显得 ...
随机推荐
- Opencv笔记(三)——视频的获取及保存
一.利用摄像头获取视频 我们经常需要使用摄像头捕获实时图像.OpenCV 为这中应用提供了一个非常简单的接口.让我们使用摄像头来捕获一段视频,并把它转换成灰度视频显示出来.了获取视频,你应该创建一个 ...
- Review For Exam
Review For Exam [2019 福建省赛] 一个很简单的状态压缩DP,结果集体走偏 如何解决连续几日的限制问题?这种东西普通的DP很难写 #include <bits/stdc++. ...
- 4412开发板QtE系统下MT6620-wifi的测试
基于iTOP4412系统烧写并启动之后,使用如下命令.wpa_passphrase XXX "YYY " >> /etc/wpa_supplicant.conf其中 X ...
- 新开通blog
从今天开始我有blog了,,以后要经常总结一些自己接触的东西,提升自己
- 关于Apache Commons-IO的使用
commons-io是一款处理io流的工具,封装了很多处理io流和文件的方法,可以大大简化我们处理io流和操作文件的代码.从common-io的官方使用文档可以看出,它主要分为工具类.尾端类.行迭代器 ...
- 转:lightGBM的黑科技--plot函数
本来想研究一下lightGBM的plotting相关的接口,发现网上已经有人做了,而且还挺不错的(lightGBM的黑科技--plot函数),就直接给转过来了 # -*- coding: utf-8 ...
- iOS MJRefresh的使用 (列表上拉加载更多)
pod 'MJRefresh' import MJRefresh 加载更多 let footView = MJRefreshAutoNormalFooter(refreshingBlock:{ //去 ...
- VSTO外接程序项目只用1个文件实现Ribbon CustomUI和CustomTaskpane定制【C#版】
VSTO中的自定义功能区和自定义任务窗格需要用到各种命名空间.添加所需文件,才能实现.后来我发现可以把所有代码都写在ThisAddin.cs这个默认文件中. 大家可以在Visual Studio中创建 ...
- 如何查看Linux系统下程序运行时使用的库?
Linux系统下程序运行会实时的用到相关动态库,某些场景下,比如需要裁剪不必要的动态库时,就需要查看哪些动态库被用到了. 以运行VLC为例. VLC开始运行后,首先查看vlc的PID,比如这次查到的V ...
- javascript 实现最简单的阶乘!
<script type='text/javascript'> window.onload = get(5); function get(n){ document.w ...