2.   标识符

2.1.   定义:

就是用来起到 标识作用的符号;

(就是程序员对自己定义的东西起的名字)

2.2.   命名规则(语法规定的,必须遵守的):

1、可以由大小写字母、数字、下划线(_)、美元符号($)组成;

2、数字不能开头;

3、关键字不能使用;

4、严格区分大小写

 

合法的标识符:name; _Abc; a, A;;clasz;

非法的标识符:0nae;1name; class ;

2.3.   书写规范:

驼峰法:

1、类名:首字母大写;多个单词,每个单词首字母大写;  如:Demo; XxxxYyyyZzzz;

2、方法名(函数名):首字母小写,多个单词,从第二个单词开始,每个单词首字母大写; 如:xxxxYyyyZzzz

3.   注释

3.1.   定义:

生活中的注释:文言文;英语单词;

Java中的注释,就是对代码起到解释说明的文字;

(给开发者看得;JVM不会看,所以编译的时候,不会编译注释的内容)

3.2.   写法:

单行注释://被注释的内容,直到这一行结束

多行注释:/* 被注释的内容 */

文档注释:/** 被注释的内容 */

作用是,可以让被注释的内容,被javadoc工具提取出来,生成一个帮助文档;

3.3.   作用:

1、解释代码,提高代码的可读性;降低开发和维护的难度;

2、被注释的内容不会被编译,可以在排查错误使用,或者调整功能;

对于新手来说,

1、将思路和分析的过程用注释写出来,有助于理清思路;

2、养成良好的注释的习惯,在面试的时候有用;

4.   常量

4.1.   定义:

就是定义之后不会改变的数据;

4.2.   java中常量的分类:

数值型:

整数型:正数、负数、0;

浮点型(带小数点的数):-3.4,0.0,7.8;

文本型:

字符型:用英文的单引号括起来的单个的字符;’2’;’a’;

字符串型:用英文的双引号括起来的零个或多个的字符;”” ; “ ”; “a”;”123” ;“嗨!美女!”;

布尔型:只有两个值:true(表示真,对) , false(表示假, 错);

空值常量:null;

4.3.   计算机数值的表示(知道):

计算机只认识二进制的数据;

4.3.1.     进制介绍

生活中一般使用十进制计数,逢十进一,一个数字位上,最大是9;

进制,就是数字进位的规则;

x进制,就是逢x进一,一个数字为上,最大的数字就是x-1;

4.3.2.     二进制的由来

计算机中使用电信号工作,能够准确表示的只有高电位和低电位;相当于开关的开和关;

一个数字位只能表示两个数字,在计算机中,这个数据量叫做1bit;

一般使用8个数据位表示一个数字,称为一个字节:

8bit = 1byte;(B)

1024 byte = 1kb;

1024kb = 1mb;

1024mb = 1Gb;

1024Gb = 1Tb;

1024Tb = 1 Pb;

4.3.3.     八进制和十六进制

八进制和十六进制,解决了二进制数字书写太长的问题;

100:

二进制:加前缀:0b; 0b100;

八进制:加前缀:0; 0100;

十进制:默认没有前缀;

十六进制:加前缀:0x; 0x100;

4.3.4.     进制转换

任意进制转换为十进制:位权展开法;

十进制转换为任意进制:短除法;

快速转换法:

4.3.5.     负数的二进制表示

4.4.   计算机字符的表示(编码表):

计算机中只能识别二进制的数字;

A

0

B

1

C

2

D

3

BBC: 112

ABCD:0123

在要表示的字符和数字之间建立一个一一对应的关系,在底层还是通过数字表示;

保存这个对应关系的表格,就是编码表;

常见的编码表:ASCII;Unicode;GB2312;BGK

……

5.   变量

5.1.   变量的概念

可以改变的数据;

在Java中,变量指的是内存中的一块空间,可以存放常量数据的;

5.2.   java的数据类型

基本数据类型:

数值型:

整数型:

byte:一个字节;-128 ~ 127;

short:两个字节:-2^15 ~ 2^15-1;

int:四个字节:-2^31 ~ 2^31-1;

long:八个字节:-2^63 ~ 2^63-1;

在Java中,整数默认都是int型的;

浮点型:

float:四个字节; -2^127 ~ 2^127;

double:八个字节; -2^1023 ~ 2^1023;

在Java中,浮点数默认都是double型的;

字符型(char):两个字节; 0 ~65535;

布尔型(boolean):true  false;

引用数据类型:后面数组的时候讲; String 不是基本数据类型;

5.3.   变量的书写格式

数据类型  变量名;

变量名 =  数值;

数据类型  变量名 = 数值;

使用变量,是通过变量名来使用的;

5.4.   变量的命名

变量名,是标识符;命名规则,和标识符的命名规则是一样的;

书写规范,在驼峰法中,和函数名的书写规范一样:

第一个单词的首字母小写;多个单词从第二个单词开始,首字母大写;

一般标识符的命名最好都有意义;

5.5.   变量的使用注意事项

5.5.1.     变量都有使用范围

5.5.2.     变量使用前,都要赋值

5.5.3.     给变量赋值,需要和变量的数据类型一致

5.6.   数据类型转换

5.6.1.     自动类型转换:

将取值范围小的类型的数据,往取值范围大的类型的变量中放,可以直接放进去,不会损失精度;

这种情况叫做Java的自动类型转换;

byte  --> short --> int --> long --> float --> double;

char -->int

5.6.2.     强制类型转换:

将取值范围大的类型的数据,往取值范围小的类型的变量中放,有可能放不进去,会出现精度损失;

如果必须往里面放,就需要使用一种方法:

小的范围的数据类型 变量名=(小的范围的数据类型)变量名;

这种情况叫做Java的强制类型转换;

原因:

一个面试题:

Java中整数默认都是int的,要声明一个long类型的常量,需要在数字后面加上字母:L(大小写都可以,推荐大写,方便识别)

Java中浮点数默认都是double的,要声明一个float类型的常量,需要在数字后面加上字母:F(大小写都可以)

6.   运算符

6.1.   算术运算符

就是用来对数据进行算术运算的符号;

+(加);-(减);*(乘);/(除);%(模运算:相当于取余运算);

参与运算的两个数据,如果数据类型不一致,结果是取值范围大的类型;

++:自增运算符;一元运算符,就是只有一个数据参与运算;

int a = 100;

运算符在运算的数据左边,叫做左自增:++a;

左自增,就是在参与运算的数据的自身上进行加一运算;

运算符在运算的数据右边,叫做右自增:a++;

- -:自减运算符;

自减运算符,原理和自增运算符一样,不同之处是,进行的是减一运算;

自增自减运算符练习:

+ :当运算符两边任意一边存在字符串时,它就是一个字符串连接符,作用就是将两边的数据连接成一个大的字符串;

练习:

总结:字符+字符是对应的ASCII上的数字 字符+字符串 字符串拼接

6.2.   赋值运算符

=:    表示将符号右边的值赋值给符号左边的 变量;

+=:-=;*=;/=;%=;

复合赋值运算符,其实是一种简写的形式;

a += b   <=>  a = a+b;

可以自动进行强制类型转换:

6.3.   比较运算符

运算结果都是布尔型常量;

>;

>=;

<;

<=;

==:

!=;

所有的基本类型的数据,都可以通过 == 符号进行相等性验证;

注意:区间判断,不能连接着写;

1.1.   逻辑运算符

&:与,相当于并且的意思,表示运算符两边的数据都为真,结果才是真;

&&:短路与,运算结果和&是一样的;

|:或,系那个当与 或者的意思,表示运算符两边的数据,有一个为真,结果就是真;

||:短路或,运算结果和|是一样的;

^:异或,表示运算符两边的数据不一样,结果才为真,否则就是假;

上面的运算符都是二元运算符,而且参与运算的两个数据和运算的结果都是布尔型的数据;

 

!:非;表示相反的意思;是一个一元运算符;

逻辑运算符练习:

 

逻辑运算表:!true = false; !false = true;

运算符左边

运算符右边

&(&&

|(||

^

true

true

true

true

false

true

false

false

true

true

false

true

false

true

true

false

false

false

false

false

&和&&的异同:

相同点:运算结果都一样;表示的逻辑运算关系也是一样的;

不同点:

&:不管符号左右两边的值是多少,两边都要进行运算;

&&:如果符号左边为false,就不计算右边;否则,右边也要计算;

|和||的异同:

相同点:运算规则也是一样的;运算结果也是一样的;

不同点:

|:不管左右两边如何,两边都要计算;

||:如果左边为真,结果一定为真,就不去计算右边;否则,就要计算右边;

问题:什么时候使用&和|

如果右边一定要计算,就要使用& 和 |

 

 

1.2.   三元运算符

格式:

 

变量名  = 布尔表达式 ? 表达式一 表达式二;

运算过程:

需要注意:三元运算符,必须有一个变量接收运算结果;

   1.3 流程控制语句

    <<:左移运算符:

     

    >>:有符号右移(算术右移),运算前后,数字的正负号不改变;

总结:有符号右移运算,左边空出来的都是用原来的符号位的数字补齐;

>>>:无符号右移(逻辑右移),右移后,左边空出来的全部用0补齐;

&:按位与;

^:按位异或

按位^的应用

总结

上面代码首先ab异或获取到c的值,然后当c与a异或 获取b 然后把b的值赋给a 然后 c与b异或获取a 然后把a的值赋值给b 这样就能获取两个数值的调换。

然后这样有个缺点是必须要给c进行初始化,那么为了节省内存空间 直接在ab两个值之间进行计算,少去c的运算步骤

1. a与b异或获取一个c 把c 赋给 a   2. a与b异或把酒相当于 c与b异或 获取到a的值 然后把a的值赋值给b  3.a与b异或就相当与 c与a异或获取b然后把值赋给a

~:按位取反:

JAVA基础--JAVA语言组成01的更多相关文章

  1. java基础---->java中正则表达式二

    跟正则表达式相关的类有:Pattern.Matcher和String.今天我们就开始Java中正则表达式的学习. Pattern和Matcher的理解 一.正则表达式的使用方法 一般推荐使用的方式如下 ...

  2. Java基础-Java中的堆内存和离堆内存机制

    Java基础-Java中的堆内存和离堆内存机制 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任.

  3. Java基础-Java中的内存分配与回收机制

    Java基础-Java中的内存分配与回收机制 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一. 二.

  4. Java基础-Java中的并法库之重入读写锁(ReentrantReadWriteLock)

    Java基础-Java中的并法库之重入读写锁(ReentrantReadWriteLock) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 在学习Java的之前,你可能已经听说过读 ...

  5. Java基础-Java中的并法库之线程池技术

    Java基础-Java中的并法库之线程池技术 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.什么是线程池技术 二.

  6. Java基础-Java中23种设计模式之常用的设计模式

    Java基础-Java中23种设计模式之常用的设计模式 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任.   一.设计模式分类 设计模式是针对特定场景给出的专家级的解决方案.总的来说设 ...

  7. Java基础-JAVA中常见的数据结构介绍

    Java基础-JAVA中常见的数据结构介绍 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.什么是数据结构 答:数据结构是指数据存储的组织方式.大致上分为线性表.栈(Stack) ...

  8. Java基础-Java数据类型

    Java基础-Java数据类型 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.数据类型的作用 数据类型就是一组值,以及这一组值上的操作,数据类型可以决定数据的存储方式,取值范围 ...

  9. java基础---java语言概述

    一.计算机编程的两种范型 1.面向过程的模型---具有线性执行特点,认为是代码作用于数据. 2.面向对象的模型---围绕它的数据(即对象)和为这个数据定义的接口来组织程序:实际上是用数据控制代码的访问 ...

  10. [Java面经]干货整理, Java面试题(覆盖Java基础,Java高级,JavaEE,数据库,设计模式等)

    如若转载请注明出处: http://www.cnblogs.com/wang-meng/p/5898837.html   谢谢.上一篇发了一个找工作的面经, 找工作不宜, 希望这一篇的内容能够帮助到大 ...

随机推荐

  1. 自动化运维工具Fabric - 密码管理(env.password and ssh key)

    在使用 Fabric 的过程中,如果大批量服务器处理的话,我们就需要针对配置主机的密码,每台主机的密码相同还好,不同的话,就需要针对不同的主机做配置了,以下有两种配置方式 注:本文主要参考官方文档 P ...

  2. People seldom do what they believe in. They do what is convenient, then repent.

    People seldom do what they believe in. They do what is convenient, then repent. 人们很少真正实践他们的理想.他们只做比较 ...

  3. weex 项目开发(五)自定义 过滤函数 和 混合 及 自定义 Header 组件

    1.自定义  过滤函数 src / filters / index.js /** * 自定义 过滤函数 */ export function host (url) { if (!url) return ...

  4. c 链表之 快慢指针 查找循环节点(转)

    上面分析了 根据这张图 推倒出 数学公式. 刚接触 不能一下弄明白.下面结合上面文章的分析.仔细推倒一下 , 一般设置 快指针 速度是 慢指针的2倍.及 快指针每次遍历两个指针, 慢指针每次遍历1个指 ...

  5. h5 录音 自动生成proto Js语句 UglifyJS-- 对你的js做了什么 【原码笔记】-- protobuf.js 与 Long.js 【微信开发】-- 发送模板消息 能编程与会编程 vue2入坑随记(二) -- 自定义动态组件 微信上传图片

    得益于前辈的分享,做了一个h5录音的demo.效果图如下: 点击开始录音会先弹出确认框: 首次确认允许后,再次录音不需要再确认,但如果用户点击禁止,则无法录音: 点击发送 将录音内容发送到对话框中.点 ...

  6. 【转载】一张“神图”看懂单机/集群/热备/磁盘阵列(RAID)

    单机部署(stand-alone):只有一个饮水机提供服务,服务只部署一份 集群部署(cluster):有多个饮水机同时提供服务,服务冗余部署,每个冗余的服务都对外提供服务,一个服务挂掉时依然可用 热 ...

  7. Animated progress view with CAGradientLayer(带翻译)

    Animated progress view with CAGradientLayer(带翻译)  Modern software design is getting flatter and thin ...

  8. 给大二学生——能够再坚持一年的ACM

    [来信] 我是大二学生,就读于一所非常普通的大学.学校ACM基本零起步,去年才開始搞,我大一大二花了非常多时间搞acm,如今不太想放弃.但学校基本没人愿意搞这个. 非常快就要大三了,我一直在纠结要不要 ...

  9. 手把手编写自己的PHPMVC框架

    1 什么是MVC MVC模式(Model-View-Controller)是软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Model).视图(View)和控制器(Controller ...

  10. sanic官方文档解析之静态文件和版本

    1,静态文件 就向图片文件一样,静态文件和指导性的文件,当通过Sanic服务端用app.static()方法注册的时候,这种方法采用端点url和文件名称获得.这样的文件的指定,将会通过指定的端点访问. ...