Java
java特点
1简单(java语法是c++语法的一个纯净版本)
2可移植性(一次编译到处运行)
3面向对象
4分布式(java把打开套接字连接等繁琐的网络任务变得容易)
5健壮性(java编译器会监察处很多其他语言在运行时刻才显示出来的错误;
java采用的指针模型可以消除重写内存和数据崩溃的可能)
6多线程(多线程编程的简单性是java成为流行的服务器端开发语言的主要原因)
7安全(用java可以构建防病毒和防篡改的系统)
8动态(java可随意增加新的方法以及实例变量,而客户端却不需做任何的更改)
9体系结构中立(字节码与计算机体系结构无关,只要存在运行时系统,可在多种处理器上执行)
java的运行原理
1编译:*.java文件-------->*.class文件
2运行:*.class文件---->加载----->JVM(java虚拟机)
JDK
JDK是整个java的核心,包括了Java运行环境,一堆java工具和java的
基础类库
基本数据类型:决定了内存空间的大小以及内存空间所存放的指的类型的限制
byte
short
int
long
float
double
char
boolean
注:
1char是无符号的16位整数,字面值必须用单引号括起来
2String是类,非原始数据类型,本质上不属于基本数据类型,
属于复杂类型
3长整型数字有一个后缀L,八进制前缀为0,十六进制前缀为0x“”
4默认整数类型为int,默认浮点类型为double
5float数据类型必须有一个后缀“f”
6在java中的编码都是unicode编码,长度都是以16bit作为单位的,不分中英文
7String,StringBuffer,StringBuilder的区别
1String:不可变字符串,在大量字符串进行连接时不使用String
2StringBuffer:java5的可变字符串,线程安全
3StringBuilder:线程不安全,性能高,没有多线程的情况下进行大量字符串连接时使用
内存的逻辑分区
1栈区:满足first in last out的分配原则---->通常存放局部变量(在方法内部定义的变量)
2堆区:自由存储区
c/c++:动态分配的内存,指针变量
java:对象
3代码区:专门用于存放函数的区域
函数指针:函数在代码区当中的地址
指针函数:函数返回值为指针类型的函数
4静态,常量存储区
命名规则
1类/接口名:单个单词的首字母大写,复合词则每个单词的首字母都大写;
2方法、变量名:第一个单词首字母小写,其余单词的瘦子们大写
3常量名称:全部字母大写,单词间用‘_’连接
4包名:全部字母小写
第三章表达式与流程控制
1变量和作用域
1)局部变量
范围:定义在一个方法内部的变量
作用域:其作用域为所在代码块,也成为临时变量、栈变量
生命周期:从创建开始到方法结束为止
特点:在使用前必须对其进行初始化
2)实例变量
范围:定义在一个类内部但不在方法中的变量
作用域:其作用域为整个类,能够被操作的范围是类的内部
生命周期:对象被创建的时候开始,对象呗垃圾回收的时间结束
特点:如未定义其初值,系统会自动对实例变量进行默认初始化,使用之前必须创建类的实例
每一个对象的实例变量的值都是相互独立的
一律存放在堆中
注意:1局部变量要先赋值,在进行运算,而实例变量均已经赋初值
这是局部变量和实例变量的一大区别
2局部变量不允许范围内定义两个同名变量。实例变量和局部变量允许命名 冲突
类型(造型)转换
1分类:隐式转换:在Java中,低精度向高精度转换是隐形的,称为隐式转换,
转换时不用任何说明就一定能转换成功
显示转换:在java中,(高精度向低精度的转换即宽类型向窄类型的转换)
是显示的,称为显示转换,转换时必须对其进行强制性转换说明才能转换成功
2原则:在类型转换的时候保证数据的完整性
3基本类型数据之间的转换
1byte--short--int--long
2char--int--float
3float--double
4long--float
5long--double
6int--double
switch内数据类型为child类型