【Java基础】基础概念
Java 关键字
- 被Java语言赋予特定含义的单词
- 组成关键字的字母全部小写
- goto和const作为保留字存在,目前并不使用
- 一般关键字在IDE中会高亮
用于定义数据类型的关键字 |
||||
class |
interface |
byte |
short |
int |
long |
float |
double |
char |
boolean |
void |
||||
用于定义数据类型值的关键字 |
||||
true |
false |
null |
||
用于定义流程控制的关键字 |
||||
if |
else |
switch |
case |
default |
while |
do |
for |
break |
continue |
return |
用于定义访问权限修饰符的关键字 |
||||
private |
protected |
public |
||
用于定义类,函数,变量修饰符的关键字 |
||||
abstract |
final |
static |
synchronized |
|
用于定义类与类之间关系的关键字 |
||||
extends |
implements |
|||
用于定义建立实例及引用实例,判断实例的关键字 |
||||
new |
this |
super |
instanceof |
|
用于异常处理的关键字 |
||||
try |
catch |
finally |
throw |
throws |
用于包的关键字 |
||||
package |
import |
|||
其他修饰符关键字 |
||||
native |
strictfp |
transient |
volatile |
assert |
Java标示符
- 给类,接口,方法,变量等起名字时使用的字符序列
- 由英文大小写字母和数字以及$和_组成,切不能为Java关键字,同时不能以数字开头
- 标示符区分大小写
Java 注释
- 为了对程序进行说明
- 单行注释 //注释内容
- 多行注释 /*注释内容*/
- 文档注释 /**注释内容 */
Java常量
- 执行程序过程中值不会发生变化
- 字符串常量 例如 "aba", "happy"
- 整数常量 例如 10,二进制表示(0b1010),八进制表示(012),十进制表示(10,默认表示形式),十六进制表示(0x000A)
- 小数常量 例如 1.1,2.1等
- 字符常量 例如 'a', 'b',但是'ab'是错的
- 布尔型常量 例如 true,false
- 空常量 只有null
整数常量会有原码,反码,和补码的区别,所有数据的运算都是采用补码进行的;
- 原码:就是二进制定点表示法,即最高位为符号位,“0”表示正,“1”表示负,其余位表示数值的大小。
- 反码:正数的反码与其原码相同;负数的反码是对其原码逐位取反,但符号位除外。
- 补码:正数的补码与其原码相同;负数的补码是在其反码的末位加1。
Java变量
- 在程序执行的过程中,在某个范围内其值可以发生改变的量;
- 定义格式:数据类型 变量名 = 初始化值;
Java 数据类型
Java是强数据类型语言,内存上会区别不同类型内存的大小,下面是不同数据类型的区分表。
不同数据类型大小区分如下:
简单类型 |
boolean |
byte |
char |
short |
Int |
long |
float |
double |
void |
字节数目 |
1 |
1 |
2 |
2 |
4 |
8 |
4 |
8 |
-- |
封装器类 |
Boolean |
Byte |
Character |
Short |
Integer |
Long |
Float |
Double |
Void |
默认整数是用int表示,如果用long,记得数字后缀加L;默认小数用double表示,如果要用float,记得用F为后缀;
Java 类型转换
- 布尔型不支持转化
- byte,short,char—int—long—float—double;
- byte,short,char相互之间不能转换,他们参与运算首先转换为int类型;
- 强制转换: 目标类型 变量名=(目标类型)(被转换的数据);
注意点:
byte b1 = 3, b2 = 4, b;
b = b1 + b2;//会报错,可能损失精度
b = 3 + 4;//不会报错
因为
b = b1 + b2
默认有类型提升,byte和byte相加,先转换成int,然后将int赋值给byte会出现“可能损失精度”的报错;
但是 b = 3 + 4则不会报错,这是因为常量先把结果计算出来,然后看是否在byte范围内,如果在则不会报错;
所以变量是先讲类型进行提升,byte,short,char的计算,都是先到int,然后再去计算。常量在编译后就可以确定,而变量要运行后才能确定。
如果赋值出现溢出怎么办,例如有byte b = (byte) 131;
这时候计算机操作如下:
计算机会把131看作整数,所以在计算机中存储131为4个字节,如下:
0000 0000 0000 0000 0000 0000 1000 0011
然后赋值给byte,会先截取最后一个字节,所以b在计算机中存储的是1000 0011,记住,这是补码,最终输出的结果是原码。
补码: 1 000 0011
反码: 1 000 0010
原码: 1 111 1101
所以结果为:-125
Java 算术运算符
注意点:
- 除法中,整数和整数相除,得到的是整数
- +号可以表示加法,正数和字符串的链接
- System.out.println(8++);这句语句编译会出错,因为常量不能参与这种自增运算,++,--针对的是变量
Java 关系运算符
Java 逻辑运算符
&&:结果和&是一样的,只不过有短路效果。左边是false,右边不执行。
||:结果和|是一样的,只不过有短路效果。左边是true,右边不执行。
&,|,^:当两边出现的是布尔值时,做的是逻辑运算,最后结果为true或false;但,当两边为数值时,做的是位运算。
Java算术运算符
A:+,-,*,/,%,++,--
B:+的用法
a:加法
b:正号
c:字符串连接符
C:/和%的区别
数据做除法操作的时候,/取得是商,%取得是余数
D:++和--的用法
a:他们的作用是自增或者自减
b:使用
**单独使用
放在操作数据的前面和后面效果一样。
a++或者++a效果一样。
**参与操作使用
放在操作数的前面:先自增或者自减,再参与操作
int a = 10;
int b = ++a;// b为11
放在操作数的后面:先参与操作,再自增或者自减
int a = 10;
int b = a++;//b为10
Java赋值运算符
A: =,+=,-=,*=,/=,%=等
B: =叫做赋值运算符,也是最基本的赋值运算符
int x = 10; 把10赋值给int类型的变量x。
C:扩展的赋值运算符的特点
隐含了自动强制转换。
面试题:
short s = 1;
s = s + 1; //先做了类型转换到int,然后没有强制类型转换,会报出“可能损失精度的错误”
short s = 1;
s += 1;// 隐含了自动强制转换。不会报错
A:^的特殊用法
一个数据针对另一个数据位异或两次,该数不变
B:面试题
a:请实现两个变量的交换
**采用第三方变量:用一个temp中间变量来实现交换
**用位异或运算符(高效率)
a = a ^ b;
b = a ^ b;
a = a ^ b;
** 用减法
a = a + b;
b = a - b;
a = a - b;
** 一条语句实现交换
b = (a+b) - (a=b);
b:请用最有效率的方式计算出2乘以8的结果:2<<3
Java三元运算符
A:格式
比较表达式?表达式1:表达式2;
B:执行流程:
首先计算比较表达式的值,看是true还是false。
如果是true,表达式1就是结果。
如果是false,表达式2就是结果。
C:案例:
a:比较两个数据是否相等
b:获取两个数据中的最大值
c:获取三个数据中的最大值
【Java基础】基础概念的更多相关文章
- Java多线程--基础概念
Java多线程--基础概念 必须知道的几个概念 同步和异步 同步方法一旦开始,调用者必须等到方法调用返回后,才能执行后续行为:而异步方法调用,一旦开始,方法调用就立即返回,调用者不用等待就可以继续执行 ...
- Java并发基础概念
Java并发基础概念 线程和进程 线程和进程都能实现并发,在java编程领域,线程是实现并发的主要方式 每个进程都有独立的运行环境,内存空间.进程的通信需要通过,pipline或者socket 线程共 ...
- Java 多线程基础(一)基本概念
Java 多线程基础(一)基本概念 一.并发与并行 1.并发:指两个或多个事件在同一个时间段内发生. 2.并行:指两个或多个事件在同一时刻发生(同时发生). 在操作系统中,安装了多个程序,并发指的是在 ...
- java基础 三 概念和java程序的结构.
一.java的一些概念: JRE(java runtime environment):java程序运行环境,如果要运行java程序,需要jre支持.jre里包含jvm JDK(java devel ...
- 《Java基础知识》Java线程的概念
按照规划,从本篇开始我们开启『并发』系列内容的总结,从本篇的线程开始,到线程池,到几种并发集合源码的分析,我们一点点来,希望你也有耐心,因为并发这块知识是你职业生涯始终绕不过的坎,任何一个项目都或多或 ...
- Java学习总结(二)----Java语言基础
1. Java语言基础 2.1 关键字 定义:被java语言赋予特殊含义的单词 特点:关键字中的字母都为小写 用于定义数据类型的关键字 class,interface,byte,short,i ...
- [转]Java多线程干货系列—(一)Java多线程基础
Java多线程干货系列—(一)Java多线程基础 字数7618 阅读1875 评论21 喜欢86 前言 多线程并发编程是Java编程中重要的一块内容,也是面试重点覆盖区域,所以学好多线程并发编程对我们 ...
- Android开发之Java必备基础
Android开发之Java必备基础 Java类型系统 Java语言基础数据类型有两种:对象和基本类型(Primitives).Java通过强制使用静态类型来确保类型安全,要求每个变量在使用之前必须先 ...
- JAVA面试基础
JAVA相关基础知识1.面向对象的特征有哪些方面 ?1.抽象:抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面.抽象并不打算了解全部问题,而只是选择其中的一部分,暂 ...
- 【重走Android之路】【Java面向对象基础(三)】面向对象思想
[重走Android之路][基础篇(三)][Java面向对象基础]面向对象思想 1 面向对象的WWH 1.1 What--什么是面向对象 首先,要理解“对象”.在Thinkin ...
随机推荐
- Git常用命令汇总
1.初始化相关 git init 初始化仓库 git remove add origin url 添加仓库地址 git remove rm origin 删除仓库地址 git clone 克隆别人的分 ...
- 图片生成操作属性导致WP内存溢出解决办法
在开发的项目中,发现经常会出现异常 “内存溢出,不能再继续执行程序”,通过搜索一些国外的文章,发现原来是由于项目中的图片比较多,而生存操作设为了“内容”.通过设置图片的生成操作为“无”,复制操作为“如 ...
- JavaScript 找出数组中重复的元素
实现检测数组重复元素的功能,需要注意一点的是,多个(2个或2个以上)重复元素,我们只需要挑出一个来就可以了. <!DOCTYPE html> <html> <head&g ...
- codeforces 387C George and Number
这道题目的意思是对于每个要删除的数字,向前或向后找到一块连续的数字,而它是其中最小的: 很容易看出对于所有要先删除的数字要从大到小删除: 然后对于每个要删除的字母,要找到比他小的,但是在原数列中又靠它 ...
- Oracle----Key Word
desc|describe table_name DCL----column ----add -- add one column alter table product ); -- add multi ...
- URAL 1119. Metro(BFS)
点我看题目 题意 : 这个人在左下角,地铁在右上角,由很多格子组成的地图,每一条边都是一条路,每一条边都是100米.还有的可以走对角线,问你从起点到终点最短是多少. 思路 : 其实我想说一下,,,, ...
- jenkin系列_调度jmeter实现分布式测试
假设现在有 192.168.1.100(jmeter 控制器 C ).192.168.1.101(jmeter负载机 B)两台机器进行分布式测试,各个步骤如下 1. C 和B 安装jmeter,并运行 ...
- 【无聊放个模板系列】POJ2752 EXKMP
#include<cstdio> #include<cstdlib> #include<cstring> #include<iostream> #inc ...
- Qt Add ons Modules(听说QtSystem有接口可以获取 imei号)
http://wiki.qt.io/Qt-Add-ons-Modules 听说QtSystem有接口可以获取 imei号.http://wiki.qt.io/Qt-Add-ons-Modules这儿下 ...
- dojo.hitch 原理
在使用dojo的时候,遇到dojo.hitch这个函数 ,官方文档说的很清楚,将函数和作用域绑定起来,这让我想起了call和apply这两个函数,call和apply用于改变一个方法的执行上下文,JS ...