⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 01_corejava_basic.txt

📁 达内科技上课的 java学习笔记 分为18天学完
💻 TXT
字号:
唐亮老师:
	
课程项目:
	网上机票订票系统.
	
课程安排
	基本语法
	面向对象语法
	高级编程接口
		图形界面
		多线程
		I/O流
		网络编程
		jdk5.0的新特性

推荐书籍
	不同的人的层次不同,所以推荐的书要因人而异.
	到书店着本书看20分钟以上.
	到书店发现了那么多的书,就会产生一种学习的紧迫感.然后想自己要多长时间看完什么什么书,最后一般是买回去也不看.
	大学教材是大学的教授为了评职称写的书.
	推荐:
			jdk学习笔记			林信良
			java面向对象编程	孙卫琴
	基础偏差:
			java2全方位学习			朱仲杰
	有一定的java基础:
			核心技术卷一卷二		sun为了能够系统的学习.
			java编程思想			希望熟悉java底层的人看的.

	
Java版本 java Edition
	JAVASE	
		用来作应用程序开发
	JAVAEE
		用来完成企业级开发,分布式的大型应用
	JAVAME
		小型应用程序
	java早先是应用在嵌入式的应用的.sun也是希望能够整合所有家电厂商.
	微软:希望能够在家电上使用的统一的平台.
	这是个发展的趋势,希望可以给家电来进行编程和控制.

	1995年1月发布了java,先今已经占据了50%的编程市场
	1972年推出的c语言
	80年代中期推出的c++语言
	2000年左右就已经在
	
	为什么发展的这么快
		1.硬件性能的提升是很重要,
			c++和java比,java最大的缺陷是性能.c++由于是面向机器的,它的性能很高的.
			java由于有了jvm的作了中间的转换,所以java性能比较低.但是硬件是在不断的提升带来的性能.
			java的优势在他的编程效率.比C++要高的多.
			所以java的编程是很简单的.
			
			语言的终极发展方向:
				自然语言来完成编程.
				人工知能和语音识别是最热门的两个课题.
				语音识别很简单,但现在真正要解决的是语意的识别.
		
		2.web互联网 applet flash 1995-1999 2000cn

java和c++的对比
	sun给java定义的时候下了十一个定语.
	1.简单
		和c++相比是简单的多,java取出了很多让人迷惑的地方.
	2.安全
		针对c++,很多c++程序崩溃的原因,指针使用的错误.往往把有效的数据做更改.
		c++申请的空间,需要自己释放,这些原因都会导制c++的崩溃.
		java中的jvm帮助你回收对象资源,
	3.跨平台
		c++,源文件-->编译-->目标码(机器码)-->连接-->可执行文件.
		c++编译的过程已经加入了所在平台的信息.
		在windows平台和liunx平台的编译过程是不同的,所以c++是源码跨平台.
		c++源码就涉及到了版权的问题.

		java, 源文件-->编译-->字节码(不是机器码)-->装载JVM-->载jvm支持下运行.
		java的编译过程没有加入机器平台的信息,这个字节码的格式是sun自己定义的.
		java同样一个源码,不论载那个平台去编译得到的字节码都是一样的.
		java的跨平台更深入了一个层次.
		java在jvm的层次上不跨平台.如果要运行java语言那么需要一个和底层操作系统相关的jvm来解释字节码文件,然后让操作系统来执行它.
		java虚拟机jvm屏蔽掉底层操作系统的差异.

java的概念
	JDK
		java 开发工具包,提供了api,文档,等等.
			JRE
				java 运行环境,只负责去运行.
					JVM	
						java 虚拟机,解释字节码文件.它不能单独下载,它嵌入在JRE里面
	这三个都是软件.
	在http://java.sun.com网站上可以找到.java1.5.0_06版本
	要根据操作系统平台来下载.

JDK目录内容
	JAVA_HOME内容:
	.../jre/	java的完整的jre
	.../bin/	java的一些可执行文件,编译执行调试要用的命令
	.../jre/lib/rt.jar	里面装有字节码(字节码文件)

java开发环境的搭建:
	liunx 下环境搭建:
		vi .bash_profile
		JAVA_HOME = /opt/jdk1.5.0_06
		PATH = $PATH:$JAVA_HOME/bin:.
		CLASSPATH = .(字节码文件搜索路径)
		export JAVA_HOME CLASSPATH PATH

		source .bash_profile 只在当前shell有效,要注销一次.

java程序
	1.源文件是个普通文本格式文件,扩展名为.java
	2.一个Java源文件中可以定义多个class但是最多只能有一个class用public修改,并且该public的class,类名必须和文件名一致.
	3.一个可运行的java应用程序,有且只有一个main()方法,并且main方法的签名是固定的,它是整个程序的入口方法.

	java找寻字节码:
		1.
		2.
		3.

编译:
	javac
	编译完后,我们定义了多少个类就会有多少个字节码文件.
运行:
	java
	主方法执行之后的结果.

	加载的过程:
		jvm在磁盘找.class文件,加载到内存的过程.
		查找过程:
			1.在当前目路下的同一个包里面找.
			2.在jre/lib/xxx.jar文件.rt.jar是java的开发人员给我们建立的.
			3.在classpath里面去找.
		jvm在查找的过程中会自动的去查找这个
		注意:常常我们自己写的类的类名回合jdk给我们提供的类名相同,这个时候jvm也就无法正确的加载我们想要的类型到jvm,程序也就出现了错误.
		当然如果我使用全限定名.
		
package 包
	它是用来管理组织我们不同的类的一些结构(目录),
	如果要把所有类放在同一个目录下,那么就很容易出现同名的问题.
	java中的包结构,等同于目录结构.
	编译好之后,是我们源文件的包结构对应的是字节码放在那个目录下.
	包的命名是有些约定俗成的规范
		包名:开头com.tarena.Hello//所属公司
						下来   .abs //项目名	
								数据原型	.model//	模块名
											.submodel//子模块
								做显示		.view//显示名
		映射到目录 
				com/tarena/abs/model
				com/tarena/abs/model/submodel
				com/tarena/abs/view
	如果我们按照这样的规范来命名包,最终所有不同的java代码都不会冲突.
	
加包之后需要注意的地方:
	带有包的编译:
		javac -d . 
		1.把编译好的源字节码文件放在指定的目录下.
		2.如果源文件声明了包,使用-d选项,系统将会自动的在目标目录下按照包结构生成子目录.
		
	带有包的运行:
		如果直接的去运行类名,那么就出现了问题,
		一旦你的程序加了包,那么这个类所属的下面就要加入包名.
		java 后面要运行的类,就要指定他所属的包名.
		并且还要保证,在执行运行命令的时候,必须是在com的所在的上一级目录.
	
	classpath的含义
		javac -d d:\corejava 文件名.java
		创建一个d:\corejava目录.
		然后在corejava目录下就有了com目录.
		然后如果在当前目录下去运行,那么就找不到了.
		如果希望我们的java命令在任何地方都能运行刚刚放的程序,那么就应当在classpath里面加上要查找的位置.
		
重要命令
	important java commands
	javadoc//自动文档生成工具
		用来生成程序文档.
		利用javadoc把源文件里加的一些注释生成一个文档.
		以一个文件为例.用/** */这种文档注释.可以用javadoc把文档提取出来.

		文档注释
			可以加在类的前面
			可以加在属性的前面
			可以加在方法的前面
		javadoc -d d:\doc String.java 把String.java文件中的文档注释生成提示文档.

	jar//	
		操作归档文件jar文件的操作.
		创建,更新,展开
		创建归档文件,java程序开发好之后,最终给用户使用的时候,我们交给用户的是字节码,源码可以不用给,最终都是完成com/....,最终把整个com目录发送过去.
		最好是把所有的内容都打包成一个.jar文件.最后只用传送一个文件.
		以后要使用第三方厂商提供的软件包的时候,我们怎样来使用这些提供的类.

		jar文件里面可以直接的使用jar文家里面提供的内容.
		只要我的classpath能找到这个jar文件,就可以使用里面包含的类了.
		
		创建
			jar -cvf //c:create v:visable f:file文件名(创建的jar文件的名字,自己指定)
			jar -cvf abc.jar (要压缩的目录)//com子目录.
			
			class		....abc.jar
			java Hello
		运行jar文件里面有main方法的类.
			java -classpath abc.jar Hello
			
		jar文件的名字也算一级目录.
import
	告诉编译器,使用的类是那个包下的类.
	
	jar import package 
	string system 是放在java.lang包下面的.
	如果要使用String 那么就应该要import java.lang.*;
	java.lang包下面所有的类,可以不经到如直接使用.只有一个包是这样的.就因为这个包下的类太常使用了.
	lang == language的缩写,语言包.
	java.awt;javax.swing;图形开发
	java.io;做输入输出的.
	java.net;做网络开发的.
	java.util;提供了一些工具.
	这些包的分类,在以后的学习会一一的讲解.

书上的第一章已经完成了.
	回忆开发过程.


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -