1. java中的关键字

提到关键字,最主要的就是不能用关键字作为标识符,值得注意的有以下几点。

①其中goto与const在java中没有定义,但是也是关键字。这个基本用不到,但是应该有个认知。

②true,false,null虽然不是关键字,但是作为一个单独的标识类型,也不能作为标识符使用。

2. java中的引用数据类型

说道数据类型,首先想到的就是八大基本数据类型,这是经常用到的都很熟悉,但是引用数据类型就容易被忽略,(这些只是根据皮皮潇个人容易的知识缺失来写的,对于大神们不太实用)而应用数据类型有三种 类、接口、数组。

3.数据溢出

当给定的数字大于了给定的数据类型能存储的数字时就会出现数据溢出,这时数字会出现一个轮回(如int最大的数字max+1得到的却是zu最小的数字min)当然这个作为了解有个认知。

4.包装类

八大包装类

基本数据类型 byte boolean short char int long float double
包装类 Byte Boolean Short Character Integer Long Float Double

其中Character与Integer是特别的不予其基本数据类型相同

包装类的作用:

java是面向对象的语言,每一种基本数据类型都应该有对应的对象类型,方便对基本类型进行操作。包装类型可以解决一些基本类型解决不了的问题

会用到包装类的情况:

①函数需要传递一个Object变量,而你想传递int类型的时候

②集合不允许存放基本数据类型,只能存放包装类型。

③基本数据类型之间的转换

④String类型的想要和基本数据类型转换也得用到包装类

5.常用的转义字符

\f 换页 \r 归位
\\ 反斜线 \" 双引号
\b 倒退一格 \t 与teb意思相同
\' 单引号 \n 换行

6基本数据类型的默认值

byte (byte)0 float 0.0f
short (short)0 double 0.0d
int 0 char \u0000
long 0l boolean flase

其中boolean与char我也是最近才知道的

7.++a与a++的区别

这个东西往往单独列出来的时候不难,插入到程序里面就容易出问题,而且不容易发现。a++是先执行整个语句再加1,++a是先加1再执行整个语句。

8.逻辑运算符中的&&与&,||与|的区别.

与分为短路与和非短路与,或分为路或与非短路或。

短路的意思就是路被堵住了后面过不去,即使用短路与的时候只要第一个条件为false即后面的条件不会执行,短路或就是第一个条件为true后面的就不会执行。然而与和或就会将两个条件都执行。

9.位运算

& 按位与
| 按位或
^ 异或(相同取0,不同取1)
~ 取反
<< 左位移
>> 右位移
>>> 无符号位移

在java中所有数据计算都是以二进制计算的,所以最后都会化为二进制来计算。

①&的运算(3&5)

00000000 00000000 00000000 00000011  3的二进制数据

00000000 00000000 00000000 00000101 5的二进制数据

00000000 00000000 00000000 00000001 结果为1的二进制数据,所以结果为十进制的1

②|的运算(3|5)

00000000 00000000 00000000 00000111 结果为7的二进制数据,所以结果为十进制的7

③^的运算(3^5)

00000000 00000000 00000000 00000110 结果为6的二进制数据,所以结果为十进制的6

④负数的二进制运算

由于计算机只定义了正数的表示形式,所以负数一般都用补码的形式表示.负数一般经过原码经过反码,补码的过程。

负数的反码就是符号为1外,其余全部取反,补码为反码加1

10000000 00000000 00000000 00000011 -3的原码

11111111 11111111 11111111 11111100 -3的反码

11111111 11111111 11111111 11111101 -3的补码

⑤~的运算(~(-3))

11111111 11111111 11111111 11111101 -3的补码

00000000 00000000 00000000 00000010 (~(-3))的值为十进制的2

⑥<<运算(3<<2)即使3的二进制数据向左移两位

00000000 00000000 00000000 00000011

00000000 00000000 00000000 00001100为十进制的12

⑦>>运算(3>>2)既是3的二进制数据向右移两位

00000000 00000000 00000000 00000011

00000000 00000000 00000000 00000000为十进制的0

⑧>>>运算(3>>>2)既是3的二进制数据无符号向右移两位

00000000 00000000 00000000 00000011

00000000 00000000 00000000 00000000为十进制的0

((-3)>>>2)

11111111 11111111 11111111 11111101 -3的补码

00111111 11111111 11111111 11111111  无符号右移2位。为十进制的1073741823

这个就成为了一个很大的正数了。

10.三目运算

这个平时用得少,但是偶尔出现的时候会导致语法不清楚,其实和if  else语句可以对应着来看

变量=条件判断?表达式1:表达式2

if(条件判断){

  表达式1

}else{

表达式2

}

11.switch  case语句

这里面有一个break;是经常出现的一个坑,如果一个switch语句没有用到break,则会继续执行下一句语句,直到找到下一个break,或者程序走完。

12.break与continue的区别

break是直接退出循环,而continue是跳出本次循环

http://www.zhiliaotang.com  请关注知了堂,在这里汇聚了各种学习型人才,大家拥有不一样的梦,但是却有一样的学习精神.。

【知了堂学习笔记】java 底层容易忽略的知识点的更多相关文章

  1. 【知了堂学习笔记】java 自定义异常

    java 常见异常种类(Java Exception): 算术异常类:ArithmeticExecption 空指针异常类:NullPointerException 类型强制转换异常:ClassCas ...

  2. 【知了堂学习笔记】java 编写几种常见排序算法

    排序的分类: 一.交换排序 所谓交换,就是根据序列中两个记录键值的比较结果来对换这两个记录在序列中的位置,交换排序的特点是:将键值较大的记录向序列的尾部移动,键值较小的记录向序列的前部移动. 1.冒泡 ...

  3. 【知了堂学习笔记】java 接口与抽象类

    本次主角:抽象类 .接口. 对于皮皮潇这样一类的Java初学者来说,接口和抽象类如果不去花大量的精力与时间是很难弄清楚的,而我也是在最近这周的项目学习中感觉到了我对这两个概念不熟悉,所以导致对一些问题 ...

  4. 【知了堂学习笔记】java web 简单的登录

    最近皮皮潇在学习java web,刚接触了简单的东西,所以今天给大家带来一个简单的登录实现. 页面: 页面代码: <%@ page language="java" conte ...

  5. 【知了堂学习笔记】java 方法重载与重写的归纳

    方法重载:Java的方法重载,就是在类中可以创建多个方法,它们可以有相同的名字,但必须具有不同的参数,即或者是参数的个数不同,或者是参数的类型不同.调用方法时通过传递给它们的不同个数和类型的参数来决定 ...

  6. [知了堂学习笔记]_牵线Eclipse和Tomcat第一篇 —— 配置Java环境变量&&安装eclipse

    一.先给他们提供一个"浪漫的"环境,比如传说中的"鹊桥"--java环境变量.哈哈! 配置java环境变量. 下载jdk,根据自己电脑的版本和操作位数选择不同的 ...

  7. 【知了堂学习笔记】java 编写几种常见排序算法2

    排序的分类: 1.直接选择排序 它的基本思想是:第一次从R[0]~R[n-1]中选取最小值,与R[0]交换,第二次从R[1]~R[n-1]中选取最小值,与R[1]交换,....,第i次从R[i-1]~ ...

  8. 【知了堂学习笔记】java 正则表达式

    本文参考网络上面别人的博客知识产出 正则表达式基础 1.句号 假设你想要找出三个字母的单词,而且这些单词必须以“t”字母开头,以“n”字母结束.另外,假设有一本英文字典,你可以用正则表达式搜索它的全部 ...

  9. 【知了堂学习笔记】java IO流归纳总结

    皮皮潇最近学到了IO流但是感觉这一块要记的东西太多了,所以重API上查阅并总结了以下几点关于IO的知识. 1.File(文件类): File类是文件以及文件夹进行封装的对象,用对象的思想来操作文件和文 ...

随机推荐

  1. SharePoint 项目的死法(二)

    说实话, 做SharePoint项目或者任何信息化项目并不是个容易的事情, 但成功的IT项目对于一个企业来说也许意味着很多, 从我的观察来看, 大部分的成功的信息化项目给企业所带来的回报都远远超过其所 ...

  2. 《PHP和MySQL Web开发》读书笔记(上篇)

    最近过得太浮躁了,实在自己都看不下去了,看了PHP圣经之后,觉得非常有必要要总结一下. Chapter1.快速入门 ·PHP标记:总共有三种风格,常用的还是XML风格为主 <?php echo ...

  3. 推荐一款超级漂亮的HTML5 CSS3的图片轮播器

    最近在学习HTML5和CSS3,印象最深的是CSS3的动画功能,不仅有浏览器原生支持,执行效率高,而且免去在js中自己管理timer. 本来想写一个图片轮播器练练手,结果在网上发现一个国人写的开源的图 ...

  4. [php]php总结(1)

    1.变量可以连续传递赋值2.var_dump()打印变量信息3.isset()与unset()4.可变变量$p = "temp";$$p则表示$temp变量,即最右边的变量的值为下 ...

  5. MySQL中JSON字段的使用技巧

    mysql5.7.8之后开始原生支持json. 在类似mongodb这种nosql数据库中,json存储数据是非常自然的, 在mysql中合理的使用json,能够带来极大的便利 Json字段的使用场景 ...

  6. SpringBoot与异步任务、定时任务、邮件任务

    异步任务 在需要开启异步的服务加上注解:@Async @Service public class AsyncService { //告诉SpringBoot这是一个异步任务,SpringBoot会自动 ...

  7. 《区块链100问》第81集:应用类项目Augur

    Augur是基于以太坊区块链打造的去中心化预测平台,于2015年6月正式发布,是以太坊上的第一款应用. Augur采用了一个叫“群体智慧”的概念,它的意思是,一群人的智慧会高于这群人中最聪明的人.所以 ...

  8. 20165230 2017-2018-2 《Java程序设计》第6周学习总结

    20165230 2017-2018-2 <Java程序设计>第6周学习总结 教材学习内容总结 第八章 常用使用类 String类常用方法 public int length() publ ...

  9. 查看linux系统的信息

    #!/bin/sh ################################################## #function:get host's information #Autho ...

  10. 64位linux安装32位校园网客户端

    下面的是ubuntu下和arch下的安装方法,ubuntu的转自网络, ubuntu: 下载客户端并解压 安装开发包 1 sudo -i 2 dpkg --add-architecture i386 ...