Java基础语法01——变量与运算符
Java基础语法01——变量与运算符
本文是对Java基础语法的第一部分的学习,包括注释;标识符的命名规则与规范;变量的数据类型分类以及转换;以及六种运算符(算术、赋值、比较、逻辑、三元和位运算符)。
注释(commment)
书写注释是一种良好的习惯,注释是写给人看的,并不会在代码运行时展示出来。注释主要分为以下三类:单行注释、多行注释、文档注释
单行注释:一行,格式://
多行注释:一段,格式:/* 注释文字 */
文档注释:是专门为了用javadoc工具自动生成文档而写的注释,它是一种带有特殊功能的注释。
格式:/** 文字 */ (这一部分还有很多需要扩展学习的地f方)
标识符
identifier在Java中,有很多需要自己起名字的地方,而这些就被称为标识符。
用来命名:类名、变量名、方法名、包名、接口名、常量名等。
标识符命名规则:【必须遵循,否则会报错】
- 首字母只能以英文字母大小写、$、下划线(_)开始
- 首字母之后可以是英文字母大小写、$、下划线(_)或数字的任意组合
- 标识符的命名是大小写敏感的
- 不能使用关键字(被java语言赋予了特殊含义,用作专门用途的字符串,所有字母全部是小写的),但可以包含
- 可以使用中文命名,但是一般不建议使用
Java标识符的命名规范:【非必须遵守,但是一种良好的代码习惯】
- 类名、接口名:多单词组成时,每个单词的首字母大写:XxxYyyZzz
- 变量名、方法名:首个单词全部小写,其余单词首字母大写:xxxYyyZzz
- 包名:所有字母都小写:xxxyyyzzz
- 常量名:所有字母都大写且每个单词用下划线连接:XXX_YYY_ZZZ
合法标识符举例:age、$salary、_value、__1_value
非法标识符举例:123abc、-salary
变量
- Java是一种强类型语言,即所有的变量都必须严格符合规定,所有变量都必须先定义再使用。
- 变量的定义格式:
数据类型 变量名 = 值;
- 变量只在它的作用域内有效,一般作用域是{}
- 在一个作用域内不能声明重名的多个变量
数据类型
数据类型分为基本数据类型和引用数据类型两种
- 整数类型:byte(1字节=8bit)、short(2字节)、int(4字节)、long(8字节)
byte范围:-128~127
定义long类型时,变量的值后要加L或l,例如:long l = 1000000L
整数类型常量默认为int型
- 浮点类型:float(4字节,但其表示的数范围比long大)、double(8字节)
定义float类型时,变量的值后要加F或f,例如:float f = 100.1f
浮点类型常量默认为double型
- 字符型:char(1字符=2字节)
声明char类型时,使用一对单引号(‘ ’)进行赋值,只能对一个字符进行赋值
表示方法:(1)表示一个字符(2)转义字符{\n——换行符,\t——制表符}(3)使Unicode字符集表 示字符{eg:\u0043——C}
布尔类型:boolean,只有true\false两个值,常常用在条件判断和循环结构中
拓展:
\\n
运行时会输出\n(不再表示换行的意义);"\"
可以将符号变成普通的字符
类型转换
- 首先知道一下基本数据类型容量大小的顺序:byte、short、char——>int——>long——>float——>double(顺序由低容量到高容量)(此处容量大小,指的是类型的数据的范围大小)
- 类型转换有两种类型:自动转换、强制转换(注意:不包括布尔类型)
- 自动转换:低——高
- 强制转换:高——低,需使用强转符:(强转类型)变量名 【可能导致精度损失】
- 举例:
//强转类型举例
public class Demo01{
public static void main(String[] args){
double d1 = 129.4;
int i1 = (int)d1;//将double型强转为int型
System.out.println(i1);//运行结果为129
}
}
//自动提升类型举例
public class Demo02{
public static void main(String[] args){
byte b1 = 12;
char c1 = 'a';
int i1 = 129;
int i2 = b1 + c1;//byte\char\short互相做运算或自身做运算时,都将自动转换成int类型
int i3 = b1 + i1;//当容量大的和容量小的做运算时,结果为容量大的类型
System.out.println(i2);//int型——12+97
System.out.println(i3);//int型——12+129
}
}
拓展1——String字符串类型
- 属于引用数据类型
- 声明String类型时,使用一对双引号,表示字符串
- String类型可以与其他8中基本类型做运算,且只能是连接运算:+,运算结果仍为String类型
拓展2——不同进制间的转换(了解)
所有数字在计算机底层都以二进制存在
二进制(以0b或0B开头)、十进制、八进制(以0开头)、十六进制(以0x或0X开头,用0-9及A-F[16]表示)
public class Test1{
public static void main(String[] args){
int num1 = 0b110;//二进制???为啥这条运行不了???
int num2 = 123;//十进制
int num3 = 0127;//八进制
int num4 = 0x123A;//十六进制
System.out.println("num1 = " + num1);
System.out.println("num2 = " + num2);
System.out.println("num3 = " + num3);
System.out.println("num4 = " + num4);
}
}
运算符
算术运算符
算术运算符包括正负号(+、-)、加减乘除(+、-、*、/)、取模(取余)(%)、++(前++、后++)、--(前--、后--)
通过下面的程序代码解释相关的运算(正负号和加减乘比较简单就不说了):
//除法运算
public class Demo01{
public static void main(String[] args){
int num1 = 12;
int num2 = 7;
int num3 = num1 / num2;
System.out.println("num3 = " + num3);//1 double num4 = num1/num2;//自动类型提升为double
System.out.println("num4 = " + num4);//1.0 double num5 = num1/num2+0.0;
System.out.println("num5 = " + num5);//1.0 double num6 = num1/(num2+0.0);
System.out.println("num6 = " + num6);//1.714...(除不尽)
}
}
//掌握住基本数据类型运算的本质
//取余运算
public class Domo02{
public static void main(String[] args){
int i1 = 12;
int i2 = 5;
System.out.println("i1%i2 = " + i1%i2);//2 int ii1 = -12;
int ii2 = 5;
System.out.println("ii1%ii2 = " + ii1%ii2);//-2 int iii1 = 12;
int iii2 = -5;
System.out.println("iii1%iii2 = " + iii1%iii2);//2 int iiii1 = -12;
int iiii2 = -5;
System.out.println("iiii1%iiii2 = " + iiii1%iiii2);//-2
//取模结果的符号于被取模数相同
}
}
//前++(--):先自增(减)1.后做运算
//后++(--):先做运算,后自增(减)1
public class Demo03{
public static void main(String[] args){
int a = 5;
int b = ++a;
System.out.println("a="+a+",b="+b);//a=6,b=6 b = a++;
System.out.println("a="+a+",b="+b);//a=7,b=6 b = --a;
System.out.println("a="+a+",b="+b);//a=6,b=6 b = a--;
System.out.println("a="+a+",b="+b);//a=5,b=6
}
}
//自增运算不改变 变量的数据类型
赋值运算符
赋值运算符号:=
扩展赋值运算符:+=、-=、*= 、/=、%=
//+=(其余的类似)
public class Demo04{
public static void main(String[] args){
int i1 = 7;
i1 += 2;//相当于i1=i1+2
System.out.println(i1);//9
short i2 = 7;
//i2 = i2 + 2;//编译失败,因为数据类型
i2 += 2;//结论:不会改变变量的数据类型
System.out.println(i2);//9
int i3 = 1;
i3 *= 0.2;//i3=i3*0.2(注意数据类型是整型的)
System.out.println(i3);//0
i3 += 1;//i3=i3+1
System.out.println(i3);//1
}
}
/*
1. 在开发中,使得整数+2的方法:
num=num+2;
num+=2;(推荐)
2. 在开发中,使得整数+1的方法:
num=num+1;
num+=1;
num++;(推荐)
*/
比较运算符
比较运算符:==、!=、<、>、<=、>=、instanceof
比较运算符的结果都是布尔类型:true或false
//注意区分好==和=
public class Demo05{
public static void main(String[] args){
boolean b1 = true;
boolean b2 = false;
System.out.println(b2 == b1);//false
System.out.println(b2 = b1);//true
}
}
逻辑运算符
- 逻辑运算符:&(逻辑与)、&&(短路与)、|(逻辑或)、||(短路或)、!(逻辑非)、^(逻辑异或)
- 逻辑运算符两边操作的都是布尔类型的变量
- 区分:&和&&(二者的运算结果相同,只是运行过程不同)【|、||的区分类似】
&:左右两边都运行
&&:如果左边的值可以判断出整体的值,那么右边的就不再运行
//举例说明两者区别
public class Demo05{
public static void main(String[] args) {
boolean b1=false;
int n1 =10;
if(b1 & (n1++ >0)){
System.out.println("我在北京");
}else{
System.out.println("我在南京");
}
System.out.println("n1=" + n1);
//我在南京
n1=11
boolean b2=false;
int n2 =10;
if(b2 && (n2++ >0)){
System.out.println("我在北京");
}else{
System.out.println("我在南京");
}
System.out.println("n2=" + n2);
//我在南京
n1=10
}
}
位运算符
(了解即可,平时用到的不太多)
位运算符:<<(左移)、>>(右移)、>>>(无符号右移)、&(与)、|(或)、^(异或)、~(取反)
位运算符运算的是整数的二进制,操作的是整数
左移<<:将整数的二进制数整体向左移,在空缺位补0【规律:<<n(左移n位) = 相当于原数乘2^n】
右移>>:将整数的二进制数整体向右移,如果原整数为正数,则在空缺位补0;若为负数,则补1【规律:<<n(右移n位) = 相当于原数除以2^n】
无符号右移>>>:右移,补0
与运算&:12&5——写成二进制——只有都是1才1,其余情况是0——结果:4
00001100——12
00000101——5
00000100——4
或运算|:12|5——写成二进制——只要有一个1就是1——结果:13
00001100——12
00000101——5
00001101——13
异或运算:125——写成二进制——两者不相同就是1——结果:9
00001100——12
00000101——5
00001001——9
取反运算:12——写成二进制——包括最高位按位取反
00001100——12
11110011—— -13
三元运算符
三元运算符结构:(条件表达式)?表达式1:表达式2
注意几点:条件表达式的结果须是布尔类型
若条件表达式的结果为true,则执行表达式1;若条件表达式的结果为false,则执行表达式2
表达式1与表达式2的值要求可以统一为一个数据类型
Java基础语法01——变量与运算符的更多相关文章
- JAVA学习(三):Java基础语法(变量、常量、数据类型、运算符与数据类型转换)
Java基础语法(变量.常量.数据类型.运算符与数据类型转换) 1.变量 Java中.用户能够通过指定数据类型和标识符来声明变量.其基本的语法为: DataType identifier; 或 Dat ...
- 005 01 Android 零基础入门 01 Java基础语法 01 Java初识 05 Eclipse简介
005 01 Android 零基础入门 01 Java基础语法 01 Java初识 05 Eclipse简介 Eclipse是一款集成开发工具--IDE. 集成开发环境(IDE,Integrated ...
- 003 01 Android 零基础入门 01 Java基础语法 01 Java初识 03 Java程序的执行流程
003 01 Android 零基础入门 01 Java基础语法 01 Java初识 03 Java程序的执行流程 Java程序长啥样? 首先编写一个Java程序 记事本编写程序 打开记事本 1.wi ...
- Java基础语法(2)-变量
title: Java基础语法(2)-变量 blog: CSDN data: Java学习路线及视频 1.什么是变量? 变量的概念 内存中的一个存储区域 该区域的数据可以在同一类型范围内不断变化 变量 ...
- 006 01 Android 零基础入门 01 Java基础语法 01 Java初识 06 使用Eclipse开发Java程序
006 01 Android 零基础入门 01 Java基础语法 01 Java初识 06 使用Eclipse开发Java程序 Eclipse下创建程序 创建程序分为以下几个步骤: 1.首先是创建一个 ...
- 004 01 Android 零基础入门 01 Java基础语法 01 Java初识 04 Java程序的结构
004 01 Android 零基础入门 01 Java基础语法 01 Java初识 04 Java程序的结构 Java程序的结构 Java程序外层--类 程序外层,如下面的代码,是一个类的定义. c ...
- 002 01 Android 零基础入门 01 Java基础语法 01 Java初识 02 Java简介
002 01 Android 零基础入门 01 Java基础语法 01 Java初识 02 Java简介 学习Java的基础语法 Java是一门编程语言,学习的逻辑其实和现实世界的语言是一样的,需要了 ...
- 001 01 Android 零基础入门 01 Java基础语法 01 Java初识 01 导学
001 01 Android 零基础入门 01 Java基础语法 01 Java初识 01 导学 welcome to Java World 欢迎来到Java世界 一起领略Java编程世界的奥秘与奥妙 ...
- Java基础二(变量、运算符)
1.变量2.运算符 ###01变量概述 * A: 什么是变量? * a: 变量是一个内存中的小盒子(小容器),容器是什么?生活中也有很多容器,例如水杯是容器,用来装载水:你家里的大衣柜是容器,用来装载 ...
随机推荐
- MongoDB 事务机制
MongoDB 从4.0 版本开始 副本集支持多文档事务,4.2 版本开始分片集群也支持多文档事务.单个集合的单个文档事务 在 1.x 就支持. 以下是跟 mongo 事务相关的一些概念: 1. Wr ...
- RandomStringUtils 生成随机字符串
代码: System.out.println(RandomStringUtils.randomAlphanumeric(32));System.out.println(RandomStringUtil ...
- ES6-ES12部分简单知识点总结,希望对大家有用~
ES6-ES12简单知识点总结 1.ES6相关知识点 1.1.对象字面量的增强 ES6中对对象字面量的写法进行了增强,主要包含以下三个方面的增强: 属性的简写:当给对象设置属性时,如果希望变量名和属性 ...
- Java中的序列化Serialable
Java中的序列化Serialable https://blog.csdn.net/caomiao2006/article/details/51588838
- DWR是什么?有什么作用?
DWR(Direct Web Remoting)是一个用于改善web页面与Java类交互的远程服务器端Ajax开源框架,可以帮助开发人员开发包含AJAX技术的网站. 它可以允许在浏览器里的代码使用运行 ...
- 如何使用 Spring Boot 实现分页和排序?
使用 Spring Boot 实现分页非常简单.使用 Spring Data-JPA 可以实现将可分页的传递给存储库方法.
- spring boot 自动装配的原理
参考: https://blog.csdn.net/Dongguabai/article/details/80865599.如有侵权,请联系本人删除! 入口: import org.springfra ...
- 学习FastDfs(一)
一.简介 FastDFS是一个开源的轻量级分布式文件系统,由跟踪服务器(tracker server).存储服务器(storage server)和客户端(client)三个部分组成 fastfds有 ...
- 从零开始开发一款H5小游戏(三) 攻守阵营,赋予粒子新的生命
本系列文章对应游戏代码已开源 Sinuous game. 每个游戏都会包含场景和角色.要实现一个游戏角色,就要清楚角色在场景中的位置,以及它的运动规律,并能通过数学表达式表现出来. 场景坐标 canv ...
- 简单的多选框选择功能js代码
最近没事写了个特别基础的多选框功能代码,代码如下:js部分: //获取所有class为checkbox的多选按钮(需要以下功能需要先写出对应功能的元素). var checkBoxList = doc ...