一、Java方向
桌面应用开发
*企业应用开发(微服务,大型互联网应用)
服务器系统(应用的后台)
*大数据开发(hadoop等)
游戏开发
移动应用开发
二、Java技术体系
Java SE(标准版) Java技术的核心和基础
Java EE(企业版) 企业级应用开发的一套解决办法
Java ME(小型版) 针对移动设备应用的解决方案
三、Java介绍
1.Java是一门高级编程语言
2.Java是由sun公司研发的,现在属于Oracle公司
3.Java之父是詹姆斯.高斯林
4.Java技术平台(Java SE、Java EE、Java ME)
5.Java跨平台的含义,Java如何实现跨平台的?
一次编译、处处可用
我们的程序只需要开发一次,就可以在各种安装了JVM的系统平台上运行
四、JDK
JDK的组成
JVM虚拟机:真正运行Java程序的地方
核心类库:Java自己写好的一些程序,供我们程序的调用
开发工具:javac、java等等
JRE:java的运行环境,包含jvm以及后面开发用的核心类库
JDK:Java开发工具包
JDK包含JRE,JRE包含JVM
五、字节
1.软件开发是一项包括需求捕捉、需求分析、设计、实现和测试的系统工程
2.字节:计算机中存储数据的最小计量单位,用byte或者B表示
3.计算机中最小的存储单位是二进制,最小计量单位是字节,二进制用bit表示
硬件:看得见摸得着的物理部件和设备
软件:是以程序和文档的形式存在
8个二进制代表一个字节
8bit=1B
1024B=1KB
1024KB=1GB
1024GB=1TB
六、常量
1.概述:在代码的运行过程中,值不会发生改变的数据
2.分类:
整数常量:所有整数
小数常量:所有带小数点的。例如2.5 1.5
字符常量:带单引号的' ' 单引号中必须有且只能有一个内容,有且只能是一个字符
例如:‘1’(算) ‘11’(不算) ‘ ’(算) ‘’(不算) ‘a1’(不算)' '(两个空格不算)
字符串常量:带双引号的“” 双引号里面的内容随意
例如 :“ 我是小白 ”
布尔常量:true(真) false(假)
空常量:null 代表的是数据不存在
空常量不能直接使用
七、变量
1.变量的数据类型
基本数据类型:4类8种
整型:byte、short、int、long
浮点型:float、double
字符型:char
布尔型:boolean
拓展:Float和double的区别
- float的小数位只有23位二进制,能表示的最大十进制为2的23次方,小数位是7位
- double的小数位只有52位二进制表示,能表示2的52次方,小数位是16位
- 将来开发不要用float或者double直接参与运算,会有精度损失问题
引用数据类型
类、数组、接口、枚举、注解
拓展:字符串属于引用数据类型用Striing表示,它是一个类,只不过字符串在定义是可以和基本数据类型格式一样
2.变量定义和定义格式
用来存储一个数据的,本质室内村长的一块区域
定义格式:数据类型 变量名 =数据;
3.变量的好处
使用变量记住要处理的数据,编写的代码更灵活,管理代码更方便
变量不初始化(第一次赋值)不能直接使用,在同一个作用域中变量名不能重名,不同作用域中的数据尽量不要任意访问。小作用域能访问大的,大的不能访问小的
4.标识符
概念:标识符其实就是名字,比如变量名、类名、方法名等
命名规范:由数字、字母、下划线(_)和美元符号($)组成,不能以数字开头;区分大小写,不能是java中的保留字和关键字
比如:age、score、$title、student_name、getName
5.关键字
在Java中有特定的含义、专门用途的一些标识符成为关键字,关键字全部小写
abstract | boolean | break | byte | case | catch |
---|---|---|---|---|---|
char | class | const | continue | default | do |
double | else | extends | final | finally | float |
for | goto | if | implements | import | instanceof |
int | interface | long | native | new | package |
private | protected | public | return | short | static |
strictfp | super | switch | synchronized | this | throw |
throws | transient | try | void | volatile | while |
assert | enum |
6.转义字符
- 将普通的字符转换成具有特殊含义的字符
- 将具有特殊含义的字符转换成普通字符
N:普通字符 t:普通字符
\n:换行符 \t:制表符->就是tab键
八、数据类型转换
1.何时发生类型转换
- 等号左右两边类型不一致
- 不同类型的数据做运算
2.分类
- 自动类型转换:将取值范围小的数据类型赋值给取值范围大的数据类型(小自动转大) 取值范围小的数据类型和取值范围大的数据类型数据做运算(小自动转大)
- 强制类型转换:当取值范围大的数据类型赋值给取值范围小的数据类型(需要强转)
- 基本数据类型从小到大排序:byte,short,char->int->long->float->double
取值范围小的数据类型 变量名=(取值范围小的数据类型)取值范围大的数据类型 ->需要强转
注意:不要随意写成强转的格式,因为会有精度损失问题以及数据溢出现象,除非没有办法
- byte,short定义的时候如果等号右边是整数常量,如果不超过byte和short的范围,不需要我们自己强转,jvm自动转型
- byte,short如果等号右边有变量参与,byte和short自动提升为int,然后结果再次赋值给byte或者short的变量,需要我们自己手动强转
- char类型数据如果参与运算,会自动提升为int类型,如果char类型的字符提升为int型会去ASCII码表范围去查询字符对应的int值
九、运算符
1.位运算符
计算机在存储数据都是存储数据的补码,计算也是用的数据的补码,但是我们看见的结果是原码
正数二进制最高位是0,负数二进制最高位是1
位运算符 | 符号解释 |
---|---|
& | 按位与,当两位相同时为1时才返回1(有假则假) |
| | 按位或,只要有一位为1即可返回1(有真则真) |
~ | 按位非,将操作的每个位(包括符号位)全部取反 |
^ | 按位异或,当两位相同时返回0,不同时返回1 |
<< | 左移运算符 |
>> | 右移运算符 |
>>> | 无符号右移运算符 |
拓展
print和println区别
相同点:都是输出语句
不同点:
- println:输出之后自带换行效果
- print:输出以后不带换行效果
2.算术运算符
算术运算符(+ - * % /)
+:运算 字符串拼接
%:取余
自增自减运算符
变量++ ->后自加
++变量->前自加
变量-- 后自减
--变量 前自减
自增和自减只变化1
使用:
- 单独使用:++ -- 单独为一句,没有和其他的语句掺和使用 i++; 符号在前或在后都先运算
- 混合使用:++ -- 和其他的语句掺和使用了(比如:输出语句,赋值语句)
符号在前:先运算。在使用运算后的值
符号在后:先使用原值,使用完毕后,自身在运算
3.赋值运算符
(1)基本赋值运算符:= ->先看等号右边的,再将右边的数据给等号左边的变量
(2)复合赋值运算符
+=:
Int i=10;
I+=2;(可以看成但不完全等价i=i+2)
-=
*=
/= 取整数部分
%= 取余
(3)注意:byte short遇到复合赋值运算符,jvm会自动转型
4.比较运算符
(1)结果:boolean->要么是true 要么是false
(2)作用:做条件判断使用
符号 | 说明 |
---|---|
== | 如果符号前后相等为true;否则为false |
> | 如果符号前的数据大于符号后的数据为true;否则为false |
< | 如果符号前的数据小于符号后的数据为true;否则为false |
>= | 如果符号前的数据大于或者的航宇符号后的数据为true;否则为false |
<= | 如果符号前的数据小于或者等于符号后的数据为true;否则为false |
!= | 如果符号前后不相等为true;否则为false |
5.逻辑运算符
(1)作用:连接多个boolean结果的
(2)结果:boolean型结果
符号 | 说明 |
---|---|
&&(与,并且) | 有假则假,符号前后有一个结果为false,整体就是false |
||(或者) | 有真则真,符号千欧有一个结果为true,整体就是true |
!(非,取反) | 不是true,就是false;不是false,就是true |
^(异或) | 符号前后结果一样为false,不一样为true |
问题:定义一个变量,随意给一个值,判断变量接收的值是否在1-100之间
1<=a<=100 错误写法
I>1 &&i<=100 java写法,用逻辑运算符拼接多个判断
6.三元运算符
(1)格式
boolean 表达式? 表达式1:表达式2
(2)执行流程
先判断,如果是true,就走?后面表达式,否则就走:后面的表达式2
如有不足,请大佬多多指教,感谢