一,数据类型与运算符

一,编码规范

java的编码规范不单单仅限于语法概念,其代码质量是java代码中非常重要的内容,代码质量可以提高代码的可读性,使代码更容易被人看懂,使代码结构清晰,提升代码整体水准。
java代码一般遵循几个编码规范,目的是为了使代码更有条理:
1,一行一般写一行代码。
例如:
class Hello{
public static void main(String[] args){
short a=200;
System.out.println(a);
}
}
这就是一行一种代码,下面的三种规范在这个代码中也可以明显体现出来。
2,不同级代码书写有缩进。
3,同级代码一般写在同一列。
4,所有代码要写在主函数中,并且要写在主函数的{}内

二,代码注释(描述代码的内容)

注!!!代码注释不是代码内容,只是对代码的一种解释,并不参与代码编译和运行。
代码注释的方法:(1)单行注释,用 // 表示,用来注释一行的内容,例如:

public class Hello{public static void main(String[] args){short a=200;//定义一个短整型变量aSystem.out.println(a);}
}

这是一段java代码,中间就用//注释了一行内容
(2)多行注释,用/* */来表示,引着一段话,可以注释多行。
例如:

public class Hello{public static void main(String[] args){/*这是一个主函数所有的代码都要写在主函数里*/short a=200;System.out.println(a);}
}

中间我用/* /引用,可以写多行注释。
java还有一种特殊的注释符:叫做javadoc注释,用符号表示为:/
* */,
这种符号和第二种注释符没什么区别,但是在java中有一个特殊的作用:这种注释可以只让别人看见注释,而不能看见代码,通过一个java命令:javadoc,把类前面的注释,函数前面的注释,属性前面的注释放在一个API(网页形式)文档里,例如:

package a1;
/**Hello类 这是我写的第一个java类
*/
public class Hello{public static void main(String[] args){/**主函数java的入口函数 呵呵*/System.out.println("Hello world");//打印Hello worldSystem.out.println("welcome");}
}

这是一个注释例样,中间包括两个javadoc注释。
使用javadoc命令,生成一个注释形成的网页,例如:

选中index.html打开
如图

这个代码只是把注释抽取出来,并没有抽取代码,这是java注释的一个特别的内容。

三,标识符的命名

标识符就是给变量常量等等起的名字,并不是所有的字符都能作为标识符,标识符只能有下面几个符号组成:1,字母(除了英文字母以及其大小写,汉字也可以)2,数字,3,下划线,4,doll号(货币符号)组成,但是不能以数字开头。
***java的标识符区分大小写***而且,***标识符没有长度限制***但是,不能使用关键字,保留字
关键字的概念:被编程语言赋予了特殊含义了,在java中大概有51个关键字。
保留字的概念:这种字虽然没有特殊含义,但是由于敏感被保留起来不能用为标识符,java有两个保留字一个为go to,一个为const。
注!!!有三个字既不是关键字也不是保留字:(1)true,(2)false,(3)null这三个是java中特点的取值,关键字一般代表一个动作,或者类型,或者声明,不能用这三个字作为关键字。

java标识符的约定和习惯

(1)望文生义,见名知义(变量能通过其名字理解其意思)
(2)类名由一个或多个单词组成,每个单词首字母大写,例如:public class Bai Zhi
(3)函数名,变量名由一个或多个单词组成,首单词首字母小写,拼接词首字母大写,例如:int hello Word=30;
(4)包名全小写,只可以使用特殊字符 . ,并且不以 . 开头或结尾。
(5)常量名全大写,多个单词用_连接。

四,Java语言基础

一,变量

变量是用来存储数据的存储单元,计算机有很多存储单元,为了方便我们给每个存储单元一个编号就是存储单元的地址,因为地址是一串数,所以使用不方便,所以我们通常给变量起一个名字来使用变量,这个名字就叫做变量名。

(变量的命名在第三大块中已经细致的说过,在此就不在说变量命名的规则)
二,变量的使用流程

首先是声明:

声明一个变量首先要声明变量的类型,然后后面写上变量的名字,最后以分号结尾,这是对变量的简单的声明:数据类型+变量名,例如 int a; 这就是声明了一个整形变量(变量的数据类型下一版块会细致的讲解)

其次是变量的赋值:

变量的赋值可以使用很多方式:
1,可以在声明变量的时候赋值,格式为数据类型+变量名=后面写上数值,然后以分号结尾,例如:int a=3;
2,可以声明变量后再进行赋值,直接写变量名=后面写上数值,最后以分号结尾
例如:
int a;
a=3;

3,变量的声明可以一句代码进行很多变量的赋值与定义,例如:
int a,b,c=3;
这个代码意思是定义了三个整形变量,然后给c赋了初值3。

补充:

java语言不能像c语言一样直接访问地址,java语言是一种强类型语言(强类型语言就是指不同的数据类型只能对应相应数据类型的变量),这种语言的好处是
可以节约内存的空间,使语言变得更强大。

五,数据类型

一,基本数据类型

基本数据类型分为整型,浮点型,以及布尔型,整型又分为byte型,short型,int型,long型,浮点型又分为float型(单精度浮点型)和double型(双精度浮点型),具体接下来会慢慢描述。

1,整型

{
byte型:字长为一个字节,存储八位。
short型:字长为两个字节,存储十六位。
int型:字长为四个字节,存储三十二位。(整型的默认类型)
long型:字长为八个字节,存储六十四位。
定义格式为,数据类型+变量名+数据+;
例如:long a=3;
}
整型中类型的区别只是在于存储容量的限制,都是存储整型变量的数。

2,浮点型

{
float型:字长为四个字节,单精度浮点数,存储小数。
double型:字长为八个字节,双精度浮点数,存储小数。(浮点型的默认类型)
定义格式为,数据类型+变量名+数据+;
例如:double a=2.1;
}
浮点型数据的区别在于其表示的数的精确度,double精确度大于float的精度。

3,字符型

字符型只有一种表示形式,即char类型:字长为两个字节,存储十六位,
字符型变量里面存储的是字符,例如:a,b,c,d,A,B,C,D
定义格式为,数据类型+变量名+‘字符’+;
例如:char a=‘c’;
但是字符型还有另外两种定义格式
可以直接,数据类型+变量名+数字(在Unicode字符集中数字对应相应的字符)+;
例如:char a=65;其实这就等价于char a=‘A’,因为在Unicode字符集中65就代表A
注意!!!如果这样定义char a=‘65’,这表示赋值的是65这个字符,而不是A,因为65是用‘ ’引着的。
还有一种定义语句为char a=’\u0041’,这种定义前面的\u意思为十六进制,后面的0041为用十六进制表示的数,这种方法一般不常用。

4,布尔型

boolean是字符型的表示形式,布尔型的字节数不确定,要根据情况而定(原因是虚拟机对布尔类型无约定)
布尔型只有两个值,一个为true,一个为false,如果判断为真就为true,否则就为false,后面会仔细的讲,现在只是提一句。

二,引用数据类型

引用数据类型在这个地方就先解释一类,后面的后面会慢慢讲,
string(字符串型),定义的是一个字符串
string用来定义字符串,格式为string+字符串名+双引号(双引号里面写字符串)例如:string str1=“你好”;这个地方不做过多解释,后面会慢慢解释。

六,不同数据类型的数据之间的赋值

不同的数据类型之间转换我们需要进行数据集转换,下面是一些规则,同样适用在其他数据类型。
(1)两种数据类型要相互兼容(两种数据类型要能够相互转换,**注!!!**布尔型和任何类型都无法转换)


(2)目标类型大于源类型(就是指目标类型的字长要大于源类型,例如:
int型转换为short型,因为int型字长为4,而short为2,所以int型大于short型
举例:
short a=30;
int b=a;
这种转换就是正确的。

满足这两个要求的数据类型就可以相互转换。
如果目标类型小于源类型,那该怎么赋值呢???
其实很简单,这要加一个强制转换(强制类型的规则是,整数转整数,整数长度够数据不改变,长度不够,数据从前面截断,保留长度短的数据长度,小数转整数,截掉小数部分,字符型和整数互转数据完整)
使用方法如下:
int a=50;
short b=(short)a;
因为shor型字长小于int型,所以要强制转换,其中的(short)就是强制转换,格式为()+转换成的类型。下面的其他类型的强制转换一样就不一一说了
注!!!


我刚刚提到默认值(系统默认的数据类型)
那么这个默认值有什么用呢???
默认值是系统对一个变量首先默认的类型,比如定义一个变量
long a=3;系统会首先认为3是int型,然后再把值赋给定义的这种变量,
那么如果我定义一个数特别大,已经超出了默认值的取值范围,系统就会报错,例如:long a=3000000000;这个数已经超过了int型,所以系统就会报错,但是这个数并没有超过long型,所以这时候我们要在数后面加个l表示这是long型的数据,例如:long a=3000000000l;


六,数据类型提升

不同数据类型的数在一起运算的时候会有数据类型提升,
其满足以下规则:
(
在运算时,如果两个数中有一个数为double类型,运算结果就为double类型。
如果没有double,有float类型的数,运算结果就为float类型。
如果既没有double,也没有float,若存在long类型的数,运算结果就为long类型
如果上面的都没有,那么运算结果为int型。
特殊!!!
任何的数据类型与string类型相加表示拼接,结果自动提升为string类型
例如int a=10;
System.out.println(“a=”+a);
这时候后面的a就变为1和0这两个字符,然后再和前面的字符串相拼接。

七,算数运算符

常见的算数运算符有以下几种:
++(自加运算符)
- -(自减运算符)
这两个运算符有什么作用呢,下面我将一一解释
++,自加运算符的作用是在原来的基础上加一,例如a++,就等于a的数加一
就等价于a+=1,等价于a=a+1,意思都是使a加一
- -运算符和++运算符效果一样,只不过是在原来基础上减一,
那么a++和++a有区别吗?a- -和- -a有区别吗?
当然有区别,虽然两种写法都会使a+1或者a-1,但是a的值得变换快慢是不一样的,例如a=3,那么执行++a语句,在执行++a语句的时候a就直接变为了4,而a++只有执行完这个语句a才会变成4,- - 的用法和++的用法是一样的。
注!!!我刚刚说a++,就等于a的数加一就等价于a+=1,等价于a=a+1,这三个式子是有一定区别,区别就在于a++,和a+=1这两个式子不会有数据类型的提升,a为什么类型还是什么类型,而a=a+1则会有数据类型的提升,当然- -和++的规则是一样的,在此就不一一说了。

八,关系运算符

(1)>大于号
(2)<小于号
(3)>=大于等于号
(4)<=小于等于号
(5)==等于号
(6)!=不等于号
这些符号都用在判断语句中,如果成立返回真,不成立返回假,例如a=3,b=4
那么a>b这就是一个不成立的式子,所以返回假。

九,逻辑运算符

常见的逻辑运算符有三种
(1)&&与运算符
(2)||或运算符
(3)!非运算符
(1)&&运算符是判断两个关系式是否同时成立,如果同时成立返回真,如果有一个不成立返回假,例如a=3,b=4,那么(a=3)&&(b=3)这就是返回假
因为前后两个关系式中有一个不成立,所以返回假。
(2)||运算符是判断两个关系式中是否有成立的,有一个成立就返回真,若两个都不成立,则返回假,例如刚刚上面的例子(a=3)||(b=3)这个返回值就为真,因为里面a=3成立。
(3)!运算符,这个运算符就是把真的变为假的,把假的变为真的,例如刚刚上述的(a=3)||(b=3)为真,那么!(a=3)||(b=3)就为假
除了这些基本的逻辑运算符,还有&和|运算符,这两个运算符不太常用,它们和&&,||的区别在于,判断两个式子返回值是真是假时,&&和||运算符只要判断出来结果就不再往下判断,而&和|则会把所有关系判断完。
一般&和|常用在位运算上(运算时要把数变为二进制)
&的意思是两个数相同位比较,如果有一个为0那个位上的数就为零
例如:a=26,b=20
26化为二进制为11010,20化为二进制为10100
所以a&b=(11010
10100)一个相同位的比较,所以结果为10000
|的意思和&正好相反,两个数相同位比较,如果有一个为1那个位上的数就为一
例如:a=26,b=20
26化为二进制为11010,20化为二进制为10100
所以a|b=(11010
10100)一个相同位的比较,所以结果为11110
^运算符,这个运算符的意思是,两个数相同位比较,如果有位上的数相同就为零,不同就为一
例如:a=26,b=20
26化为二进制为11010,20化为二进制为10100
所以a^b=(11010
10100)一个相同位的比较,所以结果为01110
~运算符,这个意思是按位求反
例如a=26,化为二进制为11010,那么把数补全为00011010,那么~a就等于
11100101

特殊的运算符

>>运算符
这个运算符为向右移多少位,>>1为移一位,然后符号位不变,例如a=1101100(2进制),所以a>>1为1010110
<<运算符
这个运算符为向左移多少位,<<1为移一位,然后符号位不变,例如
a=1101100(2进制),所以a<<1为11011000
>>>运算符
这个运算符是一种无符号运算符,意思是只是向右移动,然后最高位补零,
所以运算结果可能会正负不同,例如a=1101100(2进制),所以a>>>1为0110110

百知教育-第二章学习笔记相关推荐

  1. Hinton机器学习与神经网络课程的第二章学习笔记

    Hinton机器学习与神经网络课程的第二章学习笔记 该笔记为自己以后方便查阅,要是有大神感觉我的笔记有哪些地方记的有误差或者不对的话也欢迎指出 文章目录 Hinton机器学习与神经网络课程的第二章学习 ...

  2. 【ERP】ERP发展阶段有哪些?对ERP发展各个阶段概念的理解(20年3月29日第二章学习笔记)

    ERP发展历经五大阶段 1.ROP库存订货点法 2.MRP物料需求计划 3.闭环MRP 4.MRPII制造业资源计划 5.ERP企业资源计划 1.ROP库存订货点法 ROP,库存订货点法,很好理解,就 ...

  3. 人工智能及其应用——第二章学习笔记(上)

    人工智能及其应用 第二章 知识表示方法 目前常用的知识表示方法有:状态空间法.问题归约法.谓词逻辑.语义网络.本体技术等 对于传统人工智能问题,任何比较复杂的求解技术都离不开两方面的内容----表示与 ...

  4. Machine Learning In Action 第二章学习笔记: kNN算法

    本文主要记录<Machine Learning In Action>中第二章的内容.书中以两个具体实例来介绍kNN(k nearest neighbors),分别是: 约会对象预测 手写数 ...

  5. 孙鑫VC++深入详解第二章学习笔记

    第二章 掌握C++ 2.1 从结构到类 2.1.1 结构体的定义 C++相比于C的特性:封装性.继承性.多态性: 对象具有状态和行为,状态保存在成员变量中,行为通过函数实现: 标准输入输出流对象:ci ...

  6. 【ERP】ERP,MRP和MRPII的关系是怎样的?(20年3月29日第二章学习笔记)

    1.ERP与MRP的关系 MRP与ERP的关系在本人ERP第一章的笔记中已有提及,可以点击超链接跳转观看. 2.ERP与MRPII的关系 从ERP概念的提出公司Gartner Group Inc界定E ...

  7. 《机器学习实战》第二章学习笔记:K-近邻算法(代码详解)

    <机器学习实战>数据资料以及总代码可以去GitHub中下载: GitHub代码地址:https://github.com/yangshangqi/Machine-Learning-in-A ...

  8. Java基础小白入门教程-----百知教育java基础学习1---胡鑫喆

    Java基础小白入门教程(胡大大出品,彩蛋请自寻) 胡鑫喆 https://www.bilibili.com/video/BV1wE411V7Zo?from=search&seid=38511 ...

  9. C++ Primer 第二章 学习笔记及习题答案

    知识点 基本内置类型 算数类型:整型(包括布尔型和字符型).浮点型.空类型. 空类型:不对应任何值,常用来当函数不返回任何值时使用空类型作为返回类型. 带符号类型和无符号类型:带符号类型可以表示正数. ...

最新文章

  1. 64 安装_解决“不能安装 64 位Office,因已安装 32 位 Office 产品”问题
  2. CALayer(二)
  3. [转]文件IO详解(二)---文件描述符(fd)和inode号的关系
  4. 设置dialog显示,自定义时间到后dialog消失
  5. 【每周CV论文】初学深度学习图像对比度增强应该要读的文章
  6. Android之用setColorFilter在ImageView上面覆盖一层灰色的图层
  7. P2495-[SDOI2011]消耗战【虚树,dp】
  8. 分析89万招聘数据后发现:华为平均月薪35K,Java需求下降
  9. Total Physical Response TPR
  10. 库克:iPhone 11在中国定价策略很成功 非常受欢迎
  11. Centos 5.2安装Cacti并集成Nagios安装文档
  12. python设计麻将_python麻将和牌算法
  13. matlab去eog,使用ICA去除32通道脑电数据中的眼电
  14. 2018年下半年网络工程师考试试题分析(4)
  15. 云:SD-WAN不断增长的驱动力
  16. Leetcode #765 情侣牵手(贪心算法)
  17. 雷军若愿“赌”服输给董明珠10亿元 他的身家还会剩下多少?
  18. 经典共识PoW的原理及实现
  19. iOS 常用框架介绍
  20. 微信小程序开发 从创建到使用

热门文章

  1. JavaFast技术特点介绍-企业级JAVA快速开发平台, 内置java代码生成器
  2. 2018年上半年软考各科目真题及答案下载
  3. UG NX 12 对象的选择操作
  4. [转]【听译大师说话】python 创始人访谈录 1: 关于 django 和 ruby
  5. vue+websocket+Stomp组件实现前端长连接
  6. 常用的post、get工具说明
  7. PB加密,PBD加密,杜绝PB程序反编译,PB加密工具
  8. 高德GPS坐标转换成平面坐标(C#代码实现方式)
  9. ubantu安装mangnum 及magnum基本操作
  10. echarts 弹出放大_Echarts:初始放大地图类型