【java笔记】java基本语言风格(注释,数据,运算符)
目录
注释:
关键字:
标识符:
常量:
常量的分类:
数据类型:
基本数据类型:
变量:
变量使用的注意事项:
数据类型转换:
强制类型转换:
ASIIC码表:
运算符:进行特点操作的符合
运算符的种类:
算术运算符:
赋值运算符
比较运算符:
逻辑运算符:
三元运算符:
注释:
●单行注释://
●多行注释:/* */
●自动生成文档/** */
注意:
/* */不能嵌套,即不能简单地把代码注释掉,因为代码中可能会有 */
常量:
运行期间不会改变的量
常量的分类:
1、字符串常量:双引号内的部分
2、整数常量: 100,200,-250
3、浮点数常量:2.5、-3.14 0.0
4、字符常量:单引号引起来的单个字符
5、bool常量:true(真),false(假)
6. 空常量:null ,代表没有任何数据
public class PrintConst{public static void main(String[] args){//字符串常量 System.out.println("ABC");System.out.println("");//整型常量 System.out.println(30);System.out.println(-600);
//浮点常量 System.out.println(3.14);System.out.println(-2.5);//字符常量System.out.println('A');System.out.println('6');//System.out.println('');//两个单引号之间必须有且仅有1个字符//System.out.println('AB')//bool常量System.out.println(true);System.out.println(false);//空常量System.out.println(null);}
数据类型:
java是一种强类型语言,必须为每一个变量声明一种类型。
基本数据类型:
8种基本数据类型
布尔型:boolean 字符型:char 整数型:byte,short,int ,long 浮点数:float, double
float,double是近似值,不是精确值
数据范围和字节数不一定相关
浮点数默认数据类型为double,如果一定要使用float类型,需要加上一个后缀F
整数默认类型为int,如果一定要用 long类型,后缀+L
引用数据类型:字符串,数组,类,接口,lambda,大数(big number)
整型:
byte,short,int ,long
●int类型最为常用。
●如果表示很大的整数用long
●byte和short类型主要用于特定的场合,例如,底层的文件处理或者储存空间很宝贵的大数组
●整数的范围与运行java代码的机器无关:由于java程序必须保证在所有机器上都能够得到相同的运行结果,所以各种数据类型的取值范围必须固定。
c和c++,int long大写与目标平台有关。
●后缀:长整型L(l),十六进制(0x或0X),八进制(0)(最好不用),二进制(0B或0b)
●可以为数字加下划线:1_000_000(为了更易读,编译时去除)
●java没有任何无符号形式的整数(unsigned)
浮点类型
●double表示 的类型的数值精度是float的两倍(双精度类型)。
●在很多情况下,float类型的精度不能满足需求,只有很少情况下适合使用float类型,如,需要单精度数的库,或者需要存储大量数据时。
●常量Double.POSITIVE_INFINITY:正无穷
●Double.NEGATIVE_INFINITY:负无穷
●Double.NaN(不是一个数字)
●检测一个变量是否是数:if(Double.isNaN(x))(不能使用x==Double.NaN)因为非数值的值都认为是不相同的。
●浮点数值不适用于无法接受舍入误差的计算(二进制无法表示1/10),使用BigDecimal类
char类型
●char类型数据用单引号括起来。
●char类型可以表示十六进制位,从\u0000到\uFFFF
●转义序列:待补充
boolean类型
false和true,用来判定逻辑条件。整数型和布尔值之间不能进行相互转换。
在c++中0表示false,1表示true,但是java不行
if(x=0)不能通过编译,括号内不是boolean类型
变量:
程序运行期间,内容可以发生改变的量
创建一个变量并且使用的格式:
1.
数据类型 变量名; //创建一个变量
变量名=数据值; //变量赋值
2.
数据类型 变量名=数据值;//在创建变量的同时赋值
3
数据类型 变量名1=变量名2//用已有变量初始化变量
变量名命名规则:
●字母开头并由字母(包括下划线和美元以及某种语言中表示字母的Unicode字符)或数字构成的数列
●不能以保留字命名
public class variable {public static void main(String[] args) {//创建一个变量int num1;//变量赋值num1=10;System.out.println(num1);//10//改变变量的值num1=20;System.out.println(num1);//20//创建变量同时赋值int num2=25;System.out.println(num2);//25//改变变量的值num2=30;System.out.println(num2);//30//--------------byte num3=30;//-128~127System.out.println(num3);// byte num4=400;报错short num5=50;System.out.println(num5);long num6=3000000000L;//长整型后缀假LSystem.out.println(num6);//3000000000float num7=2.5F;//float浮点数后缀FSystem.out.println(num7);//2.5double num8=1.2;System.out.println(num8);//double浮点数后不需要加后缀char zifu1='A';System.out.println(zifu1);//Azifu1='中';System.out.println(zifu1);//中boolean var1=true;System.out.println(var1);//truevar1=false;System.out.println(var1);//false//将一个变量的数据内容赋值给另一个变量boolean var2=var1;System.out.println(var2);//false}
}
变量使用的注意事项:
1、如果创建多个变量,那么变量之间的名称不可以重复
2、对于float和long 类型来说,字母后缀F和L不能丢掉
3、如果使用byte或者short类型的变量,那么右侧的数据值不能超过左侧类型的范围
4、如果没有进行赋值的变量,不能直接使用
5、变量使用不能超过作用域的范围
6、可以用一个数据类型申请多个变量,但不推荐
逐一声明每一个变量可以提高程序的可读性。
var变量类型
从java10开始,对于局部变量,如果可以从变量的初始值推断出它的类型,就不需要声明类型。
var a=10;//a is int type
var b=false;//b is false
【作用域】:从定义变量的一行开始,一直到直接所属的大括号为止
public class variblenotice {public static void main(String[] args) {int num1=10;//int num1=20;//创建相同名字的变量int num2;//System.out.println(num2);没有赋值不能直接使用//System.out.println(num3);num3不在作用域内int num3=20;{int num4=20;System.out.println(num4);}//System.out.println(num4);//错误num4作用域到括号为止int num4=10;//可以作用域不冲突//可以用一个数据类型申请多个变量,但不推荐int a,b,c;a=10;b=20;c=30;int x=10,y=20,z=30;}
}
数据类型转换:
当数据类型 不一样时,会发生数据类型转换
自动类型转换(隐式):
1、代码不需要特殊处理
2、数据范围从小到大,与数据的字节数不相关(byte->int->long)(float->double)(long->float)
强制类型转换(显式)
public class DataType {public static void main(String[] args) {//左边为long类型,右边默认int类型,左右不一样//int->long,符合数据范围从小到大的要求long num1=100;System.out.println(num1);//100//左侧double类型,右侧为float类型,符合数据范围从小到大的要求double num2=2.5F;System.out.println(num2);//2.5//左边是float,右边是long类型符合数据范围从小到大的要求float num3=30L;System.out.println(num3);//30.0}
}
强制类型转换:
1、范围大的赋给范围小的
2、小类型 num1=(小类型)(num2);
注意:
1、强制类型转换一般不推荐使用(num2不能超过小类型的最大范围,否则会发生数据溢出)
2.byte/short/char这三种类型都可以发生数学运算(char 对应ASCIIC码),在计算时,都自动转换为int
public class DataType {public static void main(String[] args) {//左边int,右边long,范围大到范围小,需要强制类型转换//int num=100L;int num=(int)100L;System.out.println(num);//100//数据溢出int num1=(int)6000000000L;System.out.println(num1);//1705032704//精度损失,向下取整int num3=(int)3.99;System.out.println(num3);//字符类型可以发生数学运算char c1='A';c1+=1;System.out.println(c1);//byte/char进行数学运算时,自动转换为Intbyte num4=40;byte num5=50;int result1=num4+num5;System.out.println(result1);//90//byte+short->int+int->intshort num6=60;int num7=num4+num6;//int强制转换为shortshort num8=(short)(num4+num6);}
}
3.boolean类型不能发生数据类型转换
4、对于byte/short/char三种类型来说,如果右侧赋值的数值没有超过范围,那么编译器将会自动隐含地不上(byte)/(short)/(int)。如果右侧超过了左侧范围,那么编译器直接报错
5、在给变量赋值时,如果右侧的表达式中全都是常量,没有任何变量,那么编译器javac将若干个常量表达式计算得到结果
short result=5+8//右边全都是常量,没有任何变量参与运算,编译之后,得到.class字节码文件相当于//short result =13
short a=5;
short b=8;
short result=a+b;//错误写法,short+short->int+int->int//左边需要一个int
ASIIC码表:
只需记住3个,‘0’:48 ‘A’:65 ‘a’:97
数字和字符对照关系表(编码表):
ASCII码表: American Standard Code for Information Interchange 美国信息交换标准代码
Unicode码表:万国码。开头0-127部分和ASCII完全一样,但是从128开始包含有更多的字符
public class CharTypr {public static void main(String[] args) {char c1='A';//自动转换为intSystem.out.println(c1+0);int c2='0';System.out.println(c2);}
}
运算符:进行特点操作的符合
表达式:用运算符连起来的式子
运算符的种类:
算术运算符:
/为整数除,即只保留整数舍弃余数
+的用法:
1、对于数值来说,是+
2、对于字符char类型来说,在计算之前char会被提示为int,然后再计算
3、对于字符串String(首字母大写),表示字符串的连接。任何数据类型和字符串连接时,都会变成字符串
public class Operator {public static void main(String[] args) {//两个常量之间可以进行数学运算System.out.println(20+30);//两个变量直接也可以进行数学运算int a=20;int b=30;System.out.println(a-b);//-10//变量和常量之间可以混合使用System.out.println(a*10);//200}
}
public class plus {public static void main(String[] args) {//+连接两个字符串System.out.println("hello"+"world");//任何数据类型和字符串连接时,都会变成字符串System.out.println("java"+20);//java20//优先级问题System.out.println("java"+20+30);//java2030System.out.println("java"+(20+30));//java50}
}
自增,自减运算符:
自增:++ 自减:--
1、写在变量名称之前,或者写在变量名称之后
2、使用方式:
(1)单独使用:前++后++没有区别
(2)混合使用:
A. 如果是【前++】,变量【立刻+1】,然后拿着结构再进行使用 【先加后用】
B. 如果是【后++】,首先使用变量原本的值,然后再让【变量+1】 【先用后加】
(--同++使用)
3、只有变量才能自增自减,常量不能
赋值运算符
基本赋值运算符:=
将右侧的数据交给左侧的变量
复合赋值运算符:+=,-=,/=,*= %=
a+=3 相当于a =a+3
1、只有变量才能使用赋值运算符,常量不能进行赋值
2、复合赋值运算符其中隐含了一个强制类型转换
public class equal {public static void main(String[] args) {int a=10;a=10+5;System.out.println(a);//15a+=5;//20System.out.println(a);short num=30;num+=5;//num=num+5; short+int 强制类型转换System.out.println(num);//35}
}
比较运算符:
1、比较运算符的结果一定是一个boolean值,成立就是true,不成立就是false
2、如果进行多次判断,不能连着写(1<x<3不允许这种写法)
逻辑运算符:
与:&& 连接两个boolean值,都是true,就是true,否则就是false
或: | | 至少一个是true,就是true;全部是false,才是false
非: ! 本来是true,变成false ; 本来是false,变成true
短路:&& ||根据左边已经判断得到最终结果,那么右边代码将不再执行,从而节省一定性能
注意:
1、逻辑只能用于boolean值
2、&& ||需要左右各一个boolean值,但是取反只要有唯一的一个boolean值
(1<x<3正确写法:x>1&&x<3)、
public class logic {public static void main(String[] args) {System.out.println(true&&false);//falseSystem.out.println(3<4&&10>5);//trueSystem.out.println(true||false);//trueSystem.out.println(false||false);//falseSystem.out.println(!true);//falseint a=10;System.out.println(3>4&&++a<100);//++am没有执行System.out.println(a);//10System.out.println(3<4||++a<100);System.out.println(a);}
}
三元运算符:
元:操作数的个数
三元运算符格式:
数据类型 变量名=条件判断?表达式A:表达式B;
首先判断条件是否成立,成立将A赋给变量,不成立将B赋给变量
public class three {public static void main(String[] args) {int a=10;int b=20;int max=a>b?a:b;//取最大值}
}
注意事项:
1、必须同时保证表达式A和表达式B都符合左侧数据类型的要求
2、结果必须被使用(返回的结果需要赋给一个变量或者打印出来)
【java笔记】java基本语言风格(注释,数据,运算符)相关推荐
- Java笔记-Java日常笔记-Java核心语言-史上最全Java笔记-Java烂笔头-实时更新(~v~)
阿一的日常Java笔记,实时更新,有什么问题可以留言交流一下,大家一起共同进步!!! 1.Java基础 1.1.基本语法 1.1.1.关键字 定义:被java赋予特殊含义的字符串(单词): 关 ...
- think in java i o_5.[Think in Java笔记]Java IO系统
1.输入输出 InputStream和OutputStream是面向字节的,Reader和Write则面向字符的且兼容Unicode. InputStream类型 ByteArrayInputStre ...
- Java笔记——Java多线程~
多线程 内容来自博客~ 理解线程与进程 进程 进程:是指一个内存中运行的应用程序,每个进程都有一个独立的内存空间,一个应用程序可以同时运行多个进程:进程也是程序的一次执行过程,是系统运行程序的基本单位 ...
- java笔记——Java常用类
目录 目录 Java常用类目标 1.1内部类 1.2成员内部类 1.3静态内部类 1.4匿名内部类 2.Object类 2.1getClass()方法 2.2hasCode() 2.3toString ...
- Java笔记——Java代码块的执行顺序
Java代码块的执行顺序 Java程序中代码块的执行顺序对于学习Java的人来说是必不可少需要掌握的. 代码块 在Java中,使用{}括起来的代码被称为代码块. 根据其位置和声明的不同,可以分为: 局 ...
- Java笔记-Java端口扫描功能(含TCP包分析以及原理)
端口扫描主要是扫描其TCP端口.因为他有三次握手,握上了,如果有加密才进行传输层的加密. 写个程序,去连接那个端口,能握手,就说明端口是开着的. 关于UDP的端口扫描,有但意义不是很大,因为udp不会 ...
- JAVA笔记- JAVA集合类之HashMap集合
1- Map接口概述 我们通过查看Map接口描述,发现Map接口下的集合与Collection接口下的集合,它们存储数据的形式不同: Collection中的集合,元素是孤立存在的(理解为单身),向集 ...
- JAVA笔记- JAVA一维、二维数组的遍历与使用详解
1- 数组概述 需求:现在需要统计某公司员工的工资情况,例如计算平均工资.找到最高工资等.假设该公司有80名员工,用前面所学的知识,程序首先需要声明80个变量来分别记住每位员工的工资,然后在进行操作, ...
- JAVA笔记- JAVA集合类之ArrayList详解
1- 集合概述 A) 面向对象编程语言对事物的描述都是通过对象来体现的. 为了方便对多个对象进行操作,我们就必须对这多个对象进行存储,而要想对多个对象进行存储,就不能是一个基本的变量,而应该是一个容器 ...
- java访问控制度_菜鸡的Java笔记 - java 访问控制权限
java中四种访问控制权限的使用 内容 在java里面一共定义有四个权限,按照由小到大的顺序:private 那么这四种访问控制权限的特点如下 NO 范围 private defaule protec ...
最新文章
- 强烈推荐8个值得下载的神仙软件,每一个都让人惊喜
- 龙邱树莓派Raspberry Pi 扩展板电路及其相关实验
- oracle gather trace,Oracle 11g新SQL Trace 10046方法
- ubuntu 下安装和启动SSH 服务
- 互联网系统性能优化方向
- Commons-logging + Log4j 使用方法、常见问题
- .NET Framework 托管与非托管代码
- .NetCore源码阅读笔记系列之Security (四) Authentication AddJwtBearer
- [转载]EXT核心API详解Ext.data(八)- Connection/Ajax/Record javascript
- 单片机(ISIS 7 Professional):简易8x8矩阵LED灯代码项目
- C盘满了怎么办?最强清理工具来了
- Linux修改默认静态IP
- ApacheCN 翻译活动进度公告 2019.6.21
- 服务器XP系统打印机共享设置,windowsxp系统打印机共享设置方法介绍
- swift4.0 涂鸦画板
- 数据分析:当回音哥唱music时,他在唱些什么~~~
- CF 285 E Positions in Permutations 题解
- Node 异步I/O 实现
- Less is more——如何修复setup violation?
- linux amd显卡使用情况查看