Java基础
1.什么是Java?
Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由Sun Microsystems公司于1995年5月推出的Java程序设计语言和Java平台(即JavaSE, JavaEE, JavaME)的总称。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。
2.Java的语言优势
Java语言简单、面向对象、分布式、健壮、安全、体系结构中立、可移植、高性能、解释型、多线程、动态。
3.Java 分类
Java SE(Java Platform Standard Edition) :Java平台标准版。主要用于桌面应用程序的开发,是Java技术的核心,提供基础 Java开发工具、执行环境与应用程序接口(API)。
Java EE(Java Platform Enterprise Edition):Java平台企业版。主要用于网络程序和企业级应用的开发。
Java ME(Java Platform Mobile Edition) 嵌入式开发(手机手机软件游戏编程、小家电等)
4.数据类型
基本数据类型:byte、short、int 、 long,float 、double, char ,boolean
引用数据类型:class 、interface 、array
5..类型的强制转换
Java中的自动类型提升问题。
正向过程:从低字节到高字节可以自动转换。 byte->short->int->long->float->double
逆向过程:从高字节到低字节用强制类型转换。 例:int a = (int)4.562; 注:逆向转换将丢失精度。
6.变量
7.运算符:
算术运算符:
单目:+(取正) -(取负) ++(自增1) --(自减1)
双目:+ - * / %(取余)
三目:a>b?true:false 说明:当a>b的时候,为true(即冒号前面的值),否则为false;
关系运算符:
==(等于) !=(不等于) > (大于) <(小于) >=(大于等于) <=(小于等于)
位运算符,逻辑运算符:
&&(与):当两边操作数的位数同为1时,结果为1,否则为0。 如 1100 && 1010=1000
||(或):当两边操作数的位有一边为1时,结果为1,否则为0。如 1100 ||1 010=1110
~(非):0变1,1变0。
^(异或):两边的位不同时,记过为1,否则为0。
赋值运算符
= += -= *= /= %= &= |= <<= >>=
instanceof 运算符
该运算符为双目运算符,左边的操作元是一个对象,右边是一个类。当左边的对象是右边的类创建的对象时,该运算符运算结果为true,否则为false。
运算符优先级(高----低) [ ] ( ) ++ -- ! ~ instanceof * / % + - << >> >>> <> < = > == != &^& & || ? := op=
switch( ){
9.循环结构
while( ){
}
do{
}while( )
for(初始部分;条件判断;改变循环变量的值){
}
10.跳转语句
break;跳出loop,执行loop外面的语句
continue;终止本次loop,进入下一次loop
11.数组
数组是一个变量,用于将相同数据类型和数据存储在存储单元中。
数组类型 数组名[ ]; 或 数据类型[ ] 数组名;
求数组长数组长度: 数组名.length();
排序:Array.sort(数组名); //对数组进行升序排列
12.字符串
求字符串长度: 字符串名.length();
字符串比较: 字符串1.equals(字符串2);
常用提取和查询字符串的方法
pubic int indexOf( int a); //搜索第一个出现的字符a(或则字符集value)
public int indexOf( String value);
public int lastIndexOf( String a); //搜索最后一个出现的字符a(或则字符集value)
public int lastIndexOf( String value);
public String subString (int index); //提取从位置索引开始的字符串部分
public String substring(int begin, int end); //提取begiin 和end 之间的字符串部分
public String trim(); //返回一个前后不含任何空格的调用字符串的副本.
(数组下标从0开始 !)
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
配置java环境变量:
JAVA_HOME:配置JDK的目录
CLASSPATH:指定到哪里去找运行时需要用到的类代码(字节码)
PATH:指定可执行程序的位置
Java的垃圾回收:
由一个后台线程gc进行垃圾回收
虚拟机判定内存不够的时候会中断代码的运行,这时候gc才进行垃圾回收
缺点:不能够精确的去回收内存
java.lang.System.gc();建议回收内存,但系统不一定回应,他会先去看内存是否够用,够用则不予理睬,不够用才会去进行垃圾回收
内存中什么算是垃圾:
不在被引用的对象(局部变量,没有指针指向的)
java的安全性:
沙箱机制:只能做沙箱允许的操作
通过下面环节,实现安全
加载有用的类文件,不需要的不加载
校验字节码,查看允许的操作
查看代码和虚拟机的特性是否相符
查看代码是否有破坏性
查看是否有违规操作,如越界
查看类型是否匹配,类型转换是否能正确执行
包(package):把源文件放在目录下
由于工程的需要,将不同的源文件放在不同的目录下,从而引入了包。
包可以看作就是一个存放java源文件的目录。
在源码中声明一个包名:package p;(只能放在第一行,且最多只能是一行)
如果指定多层包,那么在包名之间我们可以用.作为分隔符:package p1.p2.p3.p4;
用“javac HelloWorld.java –d 绝对路径”,编译后生成的字节码文件就会放在指定的包结构下
执行该程序需要用" java 包名.类名 "
引进包中的某个类:import 包名.类名;
引进包中的所有类:import 包名.*;
标识符:
命名规则:
(1) 由字母、数字、下划线、$组成,不能以数字开头
(2) 大小写敏感
(3) 不得使用java中的关键字和保留字
关键字:都是小写的,jdk1.2多了strictfp(经准浮点型),关键字 jdk1.4多了assert(断言)关键字, jdk1.5多了enum(枚举) 关键字
随着学习进度,会慢慢接触到的
true、false、null严格说不应该算关键字,应称其为保留字更合适
习惯:
(1) 标识符要符合语义信息
(2) 包名所有字母小写
(3) 类名每个单词首字母大写,其它小写 //TarenaStudent
(4) 变量和方法:第一个单词小写,从第二个单词开始首字母大写 //tarenaStudent
(5) 常量:所有字母大写,每个单词之间用" _ "连接
Java OOP Object Oriented Programming,面向对象程序设计
- 发现类
- 发现类的属性
- 发现类的方法
Java Interface | C# Interface | |
实现 | implements | -- |
继承 | extends | -- |
静态成员 | 常量 | -- |
public | 可以显式使用 | 不能显示使用 |
定义 | interface | interface |
- Object 类
- String 类 -->>
- StringBuffer类 -->>
- Math 类 -->>
- Runtime 类 -->>
- System 类 -->>
- Date 类 -->>
- DateFormat 类
- .....