很久以前,看过郝斌的C语言和Java视频,把他上课的知识点一一作了记录。现在正好可以拿出来复习下。从今天开始我正式学习java,从最基本的语法学起。
这里只记载java和C#不同的语法特征,相同的就不记忆了
-------------------------------------------
Java4Android是Mars老师(这是专门为Android准备的Java课程,针对0基础)
java发展史
1995年正式发布了java,并发布了jdk1.0
1996年,sun公司成立了javasoft组织,各大公司纷纷向sun申请java许可证
1998,sun公司正式将java命名为java2(java2是java发展史上的第一次飞跃)
J2SE(基础班) J2ME(移动版,专门为移动设备设计的语言) J2EE(企业版,功能最大)
java的成功
Java一开始就为网络而生,所以能在互联网发展的今天如鱼得水,在未来的数十年中,会得到长足的发展
什么是编程
学会编程可以让你和计算机随意沟通
编程是一种创造性的工作
学会编程会让你与上帝同在
很多人使用的功能是你写的代码,
JDK的一些常识摘录
JDK的版本:从JDK1.5开始改名为JDK5.0,以后的版本依次类推(这是为了体现JDK1.5的改进之大)
(这个命名规范可能是sun公司的一个习惯,就像Solaris从1.1 1.2 1.3 1.4突然变到8.0)
JDK包括哪些工具
JDK包含的基本组件包括:
javac – 编译器,将源程序转成字节码
jar – 打包工具,将相关的类文件打包成一个文件
javadoc – 文档生成器,从源码注释中提取文档
jdb – debugger,查错工具
java – 运行编译后的java程序(.class后缀的)
appletviewer:小程序浏览器,一种执行HTML文件上的Java小程序的Java浏览器。
Javah:产生可以调用Java过程的C过程,或建立能被Java程序调用的C过程的头文件。
Javap:Java反汇编器,显示编译类文件中的可访问功能和数据,同时显示字节代码含义。
Jconsole: Java进行系统调试和监控的工具
Java中常用的包
java.lang: 这个是系统的基础类,比如String等都是这里面的,这个包是唯一一个可以不用引入(import)就可以使用的包。
java.io: 这里面是所有输入输出有关的类,比如文件操作等。
java.nio:为了完善io包中的功能,提高io包中性能而写的一个新包 ,例如NIO非堵塞应用
java.net: 这里面是与网络有关的类,比如URL,URLConnection等。
java.util: 这个是系统辅助类,特别是集合类Collection,List,Map等。
java.sql: 这个是数据库操作的类,Connection, Statement,ResultSet等。
javax.servlet:这个是JSP,Servlet等使用到的类。
什么是编译:
源代码是人类理解的代码
计算机无法理解源代码
编译就是讲源代码翻译成计算机可以识别的代码
Java的基本概念
什么是环境变量
环境变量就是系统外部命令搜索路径
path 设置为jdk的bin目录(jdk是一个绿色的文件,安装就是为了些注册表 为了自动更新)
classpath(设置为. 意思是只在当前目录下搜索类文件)
JDK里有什么:
bin存放java运行工具的java javac jar javadoc和一些其他功能,上面都列出来了
include存放的是一些C语言的程序,因为java代码有一部分是C语言写的,所以编译的时候要用到C语言程序
demo、Sample:存放的是一些演示程序
其他的注册文件 版权文件 和 帮助文档
Jre是什么
Jre是java运行环境,包括:Java虚拟机、Java平台核心类文件、其他支持文件
匿名类
匿名对象
(new Dog()).SayHi();匿名对象的创建和使用
this的作用:
1.代表本类的成员属性和方法
2.调用本类的构造函数
注意:this代表本类的构造函数,必须位于函数中的第一行代码
public class Person{
void Person(){
}
void Person(){
}
void Person(String name, int age){
this();
this(1,"2"); //注意:这种方法是错误的,第一,构造函数没必要同时调用两个 这是没有意义的。第二,this代表构造函数的时候必须为第一条语句,所以两个代表构造函数的this不能放在同一个
}
}
这里的this和C#的:this()是一样的。
Java中的static的用法
1.static修饰成员变量
2.static修饰成员方法
3.static修饰代码块
//注意Java中静态的成员也可以使用对象名来访问,不像C#里,只能通过类名访问。Java中的static成员通过成员修改访问和用类名访问的效果是一样的,静态变量的存储机制依然不变
--------------------------------------------
对于专业词语的解释
jdk:
jvm:
javaSE:
javaEE:
javaME:
jsp:
javaWeb:
安装jdk:安装的路径不能有汉字否则会产生莫名其妙的错误
编译java源文件.java - javac(java compile)
javac程序编译后的文件为字节码文件
运行java可执行文件.class - java、javaw
环境变量的配置
配置完环境变量之后,输入的命名以在所有环境变量目录中最先找到的为准
变量命名规则 运算符 格式化输出 流程控制
标识符:以字母、下划线,美元$开头
后面可以跟字母、下划线,美元$和数字
不能以关键字和保留字作为标识符
关键字:所有java关键字都为小写英文
abstract assert boolean break byte case catch char
class const continue default do double else
enum extends final finally float
for goto if implements import
instanceof int interface long native
new package private protected public
return strictfp short static super
switch synchronized this throw throws
transient try void volatile while
共49个关键字
Java的数据类型
值类型
数值:byte short int long
每种数值类型所占的字节
int 4, byte 1,short 2,long 8
long最大支持:9223372036854775807L(19位)
字符:char
char数据类型所占的字节
char 2(和C#一样是Unicode字符)
布尔:bool
bool类型所占的字节
bool 1
引用类型
类:class
接口:interface
数组:[]
Java输出数据的格式控制
输出为普通的数值格式: int long int, short byte -> %d
输出为十六进制数据格式:int long int -> %x,%#X,%X,%#X
输出单个字符格式:char -> char
输出浮点型数据:float,double -> %f (java和c语言不一样,不分%f %lf)
输出字符串数据:String(注意是大写的S) -> %s
Java的三种输出方法的比较
System.out.printf();
允许使用%c %s等格式控制符,进行输出不同类型的数据
System.out.println();
会把参数转化为字符输出
输出后换行,但是不允许使用格式控制符
System.out.print();
会把参数转化为字符输出
输出不换行但是不允许使用格式控制符
总结:只有printf才可使用格式控制符,其余两种都不允许使用格式控制符,这样也符合逻辑
Java的数据常量注意点:
如果一个整数太大,则必须在后面加L,表示这是一个长整形,否则要丢失精度(编译报错)
Java中的运算符
+:可以进行数值相加、字符串相加。
分析System.out.println("a"+1);输出a1,直接把字符串相加
和System.out.println('a'+1);输出98,直接把char类型当做整数+1
-:
* :
/:
%:操作数可以为实数(小数),但是C语言中必须为整数
|
|