Java基础--基本规则、语法
一、关键字、保留字、标识符、常量、变量
1、关键字:使用某种语言赋予特殊含义的单词。
2、保留字:没有赋予特殊含义,但以后可能会使用的单词。
3、标识符:自定义的单词,以数字、字母、下划线以及$符组成,且首字母不能以数字开头,不能以关键字命名标识符。
4、常量:程序中不会变化的数据。
5、变量:用于存储数据,实质指的是内存的一段存储空间。
二、数据类型以及相关包装类
1、基本数据类型:
(1)整型:byte, short, int, long(数字后加 L 或 l)。
(2)浮点型:float(数字后加 F 或 f), double(默认为double型)。
(3)文本型(字符型):char。
(4)逻辑型(布尔型):boolean。
2、引用数据类型:数组、类、接口。
3、基本类型对应的包装类:
(1)整型:Byte, Short, Integer, Long。
(2)浮点型:Float, Double。
(3)字符型:Character。
(4)布尔型:Boolean。
4、类型的级别(低到高): byte, short, char -> int -> long -> float -> double。
5、类型转换:
低到高: 自动转换。
比如:
long a = 1;
float b = a;
高到低:手动转换。
比如:
float a = 1;
long b = (long) a;
6、自动拆装箱
(1)自动装箱:就是将基本数据类型自动转换成对应的包装类。即Integer integer=1; 等价于Integer integer = Integer.valueOf(1);。
(2)自动拆箱:就是将包装类自动转换成对应的基本数据类型。即int i=integer; 等价于int i = integer.intValue();。
(3)装箱时,若数据在byte范围(-128~127)内,且数值相同,则不会产生新对象,即相同数值的引用指向同一个对象,否则会重新创建一个对象。
三、运算符
1、算数运算符: +, -, *, /, %,++(自增),--(自减)。
2、赋值运算符:=,+=,-=,*=,/=,%=。
3、比较运算符:>, <, >=, <=, ==, !=
4、逻辑运算符:&(逻辑与),|(逻辑或),^(异或), &&, ||, !
5、连接运算符:+(用于字符串连接)。
6、三目运算符:?=。
四、if-else,for,while,do-while,switch语句
1、if-else。
比如;
if (boolean型条件表达式) {
...
} else {
...
}
2、for。
比如:
for(初始值; 条件表达式; 表达式){
...
}
for(类型 : 数组/集合){
...
}
3、while。
比如:
while(boolean型条件表达式){
...
}
4、do-while。
比如:
do {
...
} while (boolean型条件表达式);
5、switch。
比如:
switch(值){
case 值1: ...;break;
case 值2: ...;break;
default:...;break;
}
6、break、continue。
break 跳出当前循环,执行下一条语句。
continue 结束本次循环,执行下一个循环。
五、数组
1、定义:可以理解为用于存储同一类型数据的一个容器。
2、格式:
(1)元素类型[] 变量名 = new 元素类型[元素个数];
(2)元素类型[] 变量名 ={元素1, 元素2,……};
(3)元素类型[] 变量名 = new 元素类型[]{元素1,元素2,……};
3、Arrays工具类:
(1)Arrays.toString(arr); 输出数组
(2)Arrays.sort(arr); 给数组排序
(3)Arrays.equals(arr1, arr2); 比较两个数组的元素是否相同
(4)Arrays.binarySearch(arr, key); 在有序序列中查找key的位置。
(5)Arrays.copyOf(arr, arr.length+1); 给数组增加一个元素。(扩容)
六、函数
1、提高代码复用性,将一段重复使用的代码包装成一个函数,令其实现一个功能。
2、主函数(main):是程序的入口,被jvm调用,所以需保证该类独立运行。
3、函数名的命名规范:采用小写字母开头的驼峰命名,命名需用有意义的单词。
格式如下:
修饰符 返回值类型 函数名 (参数类型1 参数1, 参数类型2, 参数2){
执行的语句;
return 返回值;(若返回值类型为void, 则无需写return)
}
七、原码、反码、补码
1、java是强类型语言,变量在使用前需声明且赋值(由编译器检测)。
2、java采用Unicode字符集编码,每个字符用16位无符号整数表示。
3、java中整数均为有符号数,且用补码表示整数。
正数的原码、反码、补码均相同。
负数的反码为其原码符号位不变,其余各位取反。
负数的补码为其反码加1.
4、补码的规则:
(1)若二进制每位全为0,则表示 数0.
(2)若最高位(符号位)为0,则表示正数。
(3)若最高位(符号位)为1,则表示负数。负数的绝对值为 每个二进制位(包括符号位)取反,然后加1,所得到的二进制数 。
比如:
10000000 的最高位为1, 所以它表示的是负数,我们将其七位全部取反,得到1111111, 然后加1,得到10000000。将该数看作无符号数,值为128,所以补码10000000的真值是-128。
short a = (short)128; short为两个字节,即 0000 0000 1000 0000,所以a为128.
byte b = (byte)128; byte为一个字节,即1000 0000,所以b为 -128.
八、左移(<<)、逻辑右移(>>>),算数右移(>>)
1、左移(<<),在其末尾补0,相当于乘2.
举例:
11010011经左移1位后,得到10100110
2、逻辑右移/无符号右移(>>>),在其左边补0。
举例:
11010011经逻辑右移1位后,得到01101001
3、算数右移(>>),若为正数则左侧补0,若为负数左侧补1,相当于除2
举例:
11010011经算数右移后,得到11101001
Java基础--基本规则、语法的更多相关文章
- 二、JAVA基础、语法
第二节:JAVA基础.语法 1.修饰符.变量: Java中主要有如下几种类型的变量 局部变量 ...
- JAVA 基础基本语法---常量与变量
JAVA 基础基本语法---常量与变量 语法:计算机能够识别的语言的规则: 0. 基本语法 编写Java程序时,应注意以下几点: 大小写敏感:Java是大小写敏感的,这就意味着标识符Hello与hel ...
- Java基础概念语法
Java基础概念语法 注释 单行注释 //行注释说明 多行注释 /* 多行注释说明 */ 文档注释 /** *@author 程序的作者 *@version 源文件的版本 *@param 方法的参数说 ...
- Java基础(1) - 语法 & 概念
Java基础语法 基础 1. Java对大小写敏感 2. Java注释 //单行注释 这是一行注释 /* 这里是多行 注释 */ /** 这里是文档注释 @author 0o晓月メ */ 3. 访问修 ...
- java基础入门-语法(1)
因为平时用到一些java的项目,比如ElasticSearch,zookeeper等,有时也想看看里面怎么实现的,或者看到别人分析原理时候会用到java源码, 自己也想跟着学一下,最起码能看懂别人的分 ...
- Java基础try-with-resource语法源码分析
众所周知,所有被打开的系统资源,比如流.文件或者Socket连接等,都需要被开发者手动关闭,否则随着程序的不断运行,资源泄露将会累积成重大的生产事故. 在Java的江湖中,存在着一种名为finally ...
- java基础(一) -语法
基本语法 编写Java程序时,应注意以下几点: 大小写敏感:Java是大小写敏感的,这就意味着标识符Hello与hello是不同的. 类名:对于所有的类来说,类名的首字母应该大写.如果类名由若干单词组 ...
- 八、Java基础---------基本语法
一.学习Java注意的细节: 1.1 Java语言拼写上严格区分大小写: 1.2 一个Java源文件里可以定义多个Java类,但其中最多只能有一个类被定义成public类: 1.3 若源文件中 ...
- 黑马程序员——JAVA基础之语法、命名规则
------- android培训.java培训.期待与您交流! ---------- 1.java语言组成:关键字,标识符,注释,常量和变量,运算符,语句,函数,数组. 2.java关键字:被Jav ...
随机推荐
- 剑指Offer:把数组排成最小的数【45】
剑指Offer:把数组排成最小的数[45] 题目描述 输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个.例如,输入数组是{3.32.321},则打印出来的这3 ...
- BZOJ 4519 [CQOI2016]不同的最小割
这道题目很奇怪. 为什么奇怪?因为这道题用了一种叫分治最小割/最小割树的玩意. 以前从来没有见过这东西. 推荐一个讲这玩意的博客 写起来还是很顺手的. #include<iostream> ...
- uboot 2013.01 代码简析(1)开发板配置
u-boot下载地址:ftp://ftp.denx.de/pub/u-boot/u-boot-2013.01.01.tar.bz2 下载之后对该文件进行解压. 我试着分析smdk2410_config ...
- Exception of type 'System.OutOfMemoryException' was thrown
最近刚换了服务器,开始测试的时候未发现什么问题,可是一旦同一时间段操作的人比较多的时候,就会抛出如下错误: Server Error in '/' Application. Exception of ...
- 【字符串题目】poj 3096 Surprising Strings
Surprising Strings Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 6193 Accepted: 403 ...
- wordpress,cos-html-cache静态化后,点击数失效问题的解决方案
装了wordpress cos-html-cache 静态插件后,生成了静态文件,post-views等点击数插件就失效了, 找了一些,包括有个js版本的,需要用到post-views插件,我也不想装 ...
- JS事件派发器EventEmitter
原文地址:http://zhangyiheng.com/blog/articles/js_event_mitter.html 需求 随着Browser客户端JS越来越复杂,MVC(Client端)设计 ...
- python raw string
path = r'C:\a\b\c.txt' r'字符串' 是raw 字符串的意思, 其中的字符串不会转义,即不解释 \ . 作用之一:可以用来保存Windows的路径,直接从资源管理器复制来粘贴,不 ...
- 详解linux上定时函数 setitimer
setitimer()为Linux的API,并非C语言的Standard Library,setitimer()有两个功能, 一是指定一段时间后,才执行某个function,二是每间格一段时间就执行某 ...
- BZOJ1251 序列终结者(Splay平衡树)(占位)
网上有许多题,就是给定一个序列,要你支持几种操作:A.B.C.D.一看另一道题,又是一个序列 要支持几种操作:D.C.B.A.尤其是我们这里的某人,出模拟试题,居然还出了一道这样的,真是没技术含量…… ...