【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 ...
随机推荐
- 使用openxml读取xml数据
xml的数据格式如下: <?xml version="1.0"?> <Language Name="Chinese"> <Loca ...
- Python Socket,How to Create Socket Server? - 网络编程实例
文章出自:Python socket – network programming tutorial by Silver Moon 原创译文,如有版权问题请联系删除. Network programin ...
- keil 51警告编译优化
KeilC51中将工程中没有调用的函数不进行编译的方法 把Target Options中的Device页中选上"Use Extended Linker(LX51)instead of BL5 ...
- C# - ref & out
引用参数和值参数 值参数,是在函数中此变量的任何修改都不影响函数调用中指定的参数,除非把它当作返回值返回,经典例子,交换两个数,但是返回值只有一个. 此时可以用引用参数,函数处理的变量和函数调用中使用 ...
- Nhibernate 分页功能
cs: public IEnumerable<ArticleView> MyGetAll(int start, int limit, ref int count) { try { var ...
- MongoDB索引介绍
MongoDB中的索引其实类似于关系型数据库,都是为了提高查询和排序的效率的,并且实现原理也基本一致.由于集合中的键(字段)可以是普通数据类型,也可以是子文档.MongoDB可以在各种类型的键上创建索 ...
- jQuery UI dialog 的使用
今天用到了客户端的对话框,把 jQuery UI 中的对话框学习了一下. 准备 jQuery 环境 首先,我们创建一个按钮,点击这个按钮的时候,将会弹出一个对话框. 1 <input type= ...
- [dp]Codeforces30C Shooting Gallery
题目链接 题意: 给n个点 每个点的坐标 x y 出现的时间t 射中的概率 从i点到j点的时间为它们的距离. 求射中个数的最大期望 很水的dp 坑点就是要用LL #include <cstdi ...
- Log4delphi使用心得
因为delphi不是我的主力开发工具,所有一直没有使用一个正式的日志组件.偶尔要记日志时,就复制同事的一个简单的文件日志函数.现在又要用到delphi日志了,决定找个通用的日志组件,造福共事的Delp ...
- Sum of Digits / Digital Root
Sum of Digits / Digital Root In this kata, you must create a digital root function. A digital root i ...