Java入土--Java基础(二)
Java基础(二)
接上一讲,我们接着来聊聊Java的一些基础知识,下一讲就会进行流程的控制.
类型转换
首先呢,是类型的转换,接上一个内容的数据类型,类型转换就是数据类型更进一步的应用.
由于Java是强类型语言,所以有些运算是需要进行类型转换的,类型转换分为强制转换跟自动转换.
运算中,不同类型通过转换,成为同一类型.
需注意:
- 强制转换需要注意内存溢出问题(或者精度问题)
- 不能对布尔值进行转换(布尔值是按位运算的)
- 小转大自动转换,大转小需要强制转换
- 不能把对象类型转化为不相干的类型
补充一个JDK7的新特性,数字很大的时候可以加下划线分割1000_0000_0000,输出时并不会输出下划线,便于代码的阅读.
强制转换:
(int)
例如:int A = (int) B,将B强制转化为int类型
自动转换不需要我们操作,在小范围类型转大范围类型时,自动进行转换.
变量
变量是可以变化的量,指代一块空间,其实变量就i相当于给一个箱子命名,在用的时候可以直接用名字将箱子提取出来
一个完整的变量包括类型,名字,作用域
类型就是该变量的属性,作用域就是他的生命周期.
局部变量:是在方法里定义的,生命周期只是在方法里生效,必须要初始化
实例变量:从属于对象(类),是定义在类里的,不初始化时,默认为零,布尔值默认为false,除了基本类型,默认值是null
类变量:加了static,从属于类,会随着类而同时出现消失(后文会加以对static详解)
常量
常量:final + 常量名,一般全大写,值被定义后,程序运行过程中不可变更,即该值只能赋值一次
注意:
- 每个变量都有类型,类型可以是基本类型,也可以是引用类型
- 不建议一行定义多个变量,会使可读性变差
- 变量名必须是合法字符
运算符
当多个数据类型混在一起运算时,会自动转为较"大"的类型,这也是我们所说的自动转换类型
简单算术运算
- 算术运算符就是加减乘除(+-*/)
- "%"是取余符号,4%2=0,5%2=1,也就是我们小学所学的5/2=2.....1;
接下来就是我们的自增运算(++,--):
简单来说++运算就是本身自增1,相当于a = a+1;--就是a=a-1;
再来看a++与++a的区别
- 首先解释b = a++,先将a赋值给b,再进行a=a+1;
- b = ++a,是先执行a = a+1,再将执行后的结果赋值给b.
在算数运算中还有一个十分重要的运算就是幂运算,只不过他是借助一个库函数,比如2的3次方
可以用Math.pow(2,3)来表示.
在Java中的许多运算,都可以用工具库来进行运算
逻辑运算:
与,或,非
- 与:(&&),两个都为真,结果为真
- 或:(||),有一个为真,则结果为真
- 非:(!),真变为假,假变为真
按位运算:
根据二进制位进行比较,这个方法胜在计算速度快,了解即可,想深入的也可以自行查阅,不做强求.
- &:即同一位上的01进行比较,有一个为0,则该位上为0
- |:即同一位上的01进行比较,有一个为1,则该位上为1
- ^:即异或,即同一位上的01进行比较,相同为0,不同为1
- ~:取反,0011,变为1100.
- <<:左移,即二进制位向左移一位,简单来说即使*2(效率极高)
- ">>":右移,即二进制位向右移一位,简单来说即使/2(效率极高)
条件运算符(三目运算符):
条件运算符也称三目运算符,格式如下:
x ? y : z
意思就是x的结果为真,则返回y,为假,则返回z
扩展赋值运算符:
a+=b:就是a = a + b
a-=b:就是a = a - b
字符串连接符:
字符串连接符放在这里跟大家聊一聊,首先
""+a+b
a+b+""
优先级:
包机制
包的本质就是文件夹
为了更好的组织类,java提供了包机制,用于区别类名的命名空间
语句格式:
package pkg1[]
一般以公司域名倒置最为包名:com.baidu.www
导入包:
import + 包名
这样就可以用别人写的函数
:通配符,导入该包下所有的类
import +包名+,就可导入该包下所有的类.
无规矩不成方圆,阿里巴巴开发手册
JavaDoc
JavaDoc命令是用来生成自己的API文档的,使用命令行执行,也可以使用idea生成
Java基础(完)
首先我觉得自己的水平所写出来的东西并不值得深入讨论,甚至可能会漏洞百出,所以大佬轻喷.
关于我为什么要写博客,第一呢是因为自己处于复盘阶段,想再把基础的东西巩固一下.
第二个是想通过这种方法来督促自己学习,并把自己所学到的通过记录,给同样迷茫的同学一个大体方向,如果想从零开始了解Java,可以从博客里Java分栏里的第一篇往后阅读.
在最后重申:水平有限,大佬轻喷.
最新文章
- freemarker种种
- Java程序设计之最大公约数和最小公倍数
- Android Scroller简单用法
- Ext1.X的CheckboxSelectionModel默认全选之后不允许编辑的BUG解决方案
- Using python to process Big Data
- org.openqa.selenium.WebDriverException: f.QueryInterface is not a function Command duration or timeout:
- BCP批量导入数据时候如何处理表中自动增加的字段
- [转]MFC中UpdateData()函数的使用
- eclipse 批量 查询 替换
- HTML5兼容IE各版本的写法
- JavaScript实例技巧精选(10)—计算器实例2
- Git_GitHub-使用过程遇到的问题——坑(持续添加)
- tomcat没有编译重新编写的代码
- 为什么需要把页面放在WEB-INF文件夹下面?
- java 测量运行时间 单位:毫秒
- smartcrop.js 内容感知图像裁剪
- IIS 7.0 SSL 部署指南
- automation轻松“一点”,搞定裸机安装系统
- Python小白学习之路(十一)—【局部变量和全局变量】【关键字global】【关键字nonlocal】
- 【Nodejs】理想论坛帖子爬虫1.02