`

我的二十一天CoreJava 学习笔记

阅读更多

 

前言 :最近在网上收了个做JAVA 的徒弟,他刚从学校出来,也是无意中在JAVA 交流群中认识的。然而在最近的交流中,我不由的非常头痛,他的基本功还很弱,问的一些问题都是基础性的问题,经常我在给他解释问题时都想自己来动手给他改项目文件了。现在把我以前学JAVA 的笔记翻出来,希望能给和他一样的新手朋友们有个相对较全的学习路子和知识范围,早日飞出小菜之地。

:本文档只是本人在学习 JAVA 时的笔记,每一天学习的知识都不同,并不是完全的学习手册。这里很多地方都只是对知识点的讲一下就带过了没有详解,这里主要是给入门者一个全景概括,让他们知道, JAVA 里会有哪些东西,哪些是基础性的必须要掌握的。

 

 

在线pdf浏览地址:http://www.docin.com/p-203504193.html

 

下面给上第一天的笔记,全文在附件。

 

 

 

我的二十一天 CoreJava

培训学习笔记


 

 

第一天 了解JAVA基础知识 2

第二天 语言元素 6

第三天 流程控制 10

第四天 数组 12

第五天 对象 14

第六天 类 16

第七天 接口 20

第八天 修饰符 21

第九天 类相关 22

第十天 内部类 25

第十一天 集合 28

第十二天 泛型 29

第十三天 异常 30

第十四天 反射和 注释(标注) 33

第十五天 图形界面 36

第十六天 Swing具体用法 37

第十七天 Swing事件 39

第十八天  THREADS (多线程) 40

第十九天 锁 42

第二十天 I/O流 44

第二十一天 网络编程 46


第一天 了解 JAVA 基础知识

一、学习CoreJava 的要求

   1 、上课一定要听懂(理解)

   2 、课后一定要练习

   3 、练完后要思考

二、Java 的优势

1. 简单:c++ 里面内存要自己去管理,而java 里面有系统的垃圾回收器,Java 中省去了对指针的操作,但并不是没有指针了,只是被封装了而已,

代替指针的是种新的变量,叫做引用,这个引用里面也是保存的一个对象的地址,它和指针的差别就是比指针功能要弱化了,也更简单了。

   2 、安全,字节码的验证,c++ 中对指针的操作可能会导致内存栈的溢出,而在Java 里面不用我们去担心这些问题,这些统统有JVM 去替我们做。

   3 Java 的跨平台性:用这个语言开发出来的程序可以在不同系统中运行:

      源码是怎样成为可执行代码的

      源码--> 编译--> 目标码(二进制机器码)--> 连接--> 可执行文件

      由此看来,汇编、CC++ 等语言都是不跨平台的,因为他们的编译过程就直接与当前系统挂钩了

      C C++ 源码都是跨平台的,我们所指的跨平台是基于编译过程中的跨平台,以上几种语言在不同

      的系统中编译出来的目标码是不同的。

      Java 跨平台就是编译过程中的跨平台,怎么实现的呢,那就是Java 虚拟机:

       Java 的源码编译过程:

       源码--> 编译--> 字节码--> 把字节码装载到虚拟机中运行

       --JAVA 虚拟机:JVM

       屏蔽掉了不同平台的差异,为上层的字节码提供了一个统一的运行环境

       虚拟机是为了给字节码提供统一的执行平台,每种操作系统所用的虚拟机是不同的,是为了统一

       JAVA 字节码的解析执行方式,如果没有虚拟机,在一种操作系统上写了JAVA 代码,编译成字节码

       后只能在本操作系统上运行,但是换一个操作系统的话就要重新再写一遍JAVA 代码然后重新编译,

       所以虚拟机提高了代码的复用性,实现了一次编写,多处使用的优点。

       不同系统的Java 虚拟机之前的源码和字节码部分都是跨平台的,从虚拟机就不是跨平台的了。

      这样Java 的字节码就可以直接用来传播,而不用传播源码了。

三、JDK/JRE/JVM

   JDK JAVA 开发工具包,比JRE 多了一些开发和调试的命令,比如javacjava 等等。

   JRE JAVA 运行环境

   JVM JAVA 虚拟机

   包含关系:JDK 包含JREJRE 包含JVM

   如果你搭建的Java 开发环境是用来做Java 开发的,那么就安一个JDK

   如果你不做开发,而只是运行别人开发调试好的程序,那么就只安装一个JRE 就可以了

     一般服务器上就只安装JRE

   针对不同的操作系统有不同的JDK 下载

   JDK 安装好后的文件夹中有个bin 目录,里面一般是我们经常用到的一些命令,比如javacjava

    JDK 目录下有个src.zip 文件,解压开后就是JDK 类库中的源码,也就是rt.jar 压缩文件中class

   文件的源码。

   jre 目录是JDK 自带的JRE ,里面也有bin 目录,一般存放的是运行时的一些命令

   jre 文件夹中的lib 文件中有一些jar 文件,里面都是一些class 文件在虚拟机运行时作为类代码

   其中一个比较重要的jar 文件就是rt.jar ,里面放的是JDK 给我们提供的一整套类库的字节码

四、配置环境变量

   JAVA_HOME JDK 的安装路径

   CLASSPATH :类的搜索路径

   PATH :命令的搜索路径=$JAVA_HOME/bin-->java javac

  

   Linux

     -- 一般JDK 是放在/opt/jdk1.6.0_05

     -- 配置环境变量的文件是主目录中的".bash_profile" 文件(bash)

            .profile(bsh),.cshrc(csh)

       进入终端后:vi .bash_profile

       在里面配置:

       JAVA_HOME=/opt/jdk1.6.0_05

        CLASSPATH=.

       PATH=$PATH:$JAVA_HOME/bin:.......

       export JAVA_HOME

       export CLASSPATH

     -- 配置完后保存退出,然后source .bash_profile

       在命令行打java 命令验证是否配置成功,如果成功了,注销一遍系统

   Windows:

     -- 右键我的电脑--> 高级--> 环境变量--> 在系统变量或者用户变量上配置-->

       JAVA_HOME :当前机器上JDK 的文件目录 "C:\Program Files\Java\jdk1.6.0_05"

       CLASSPATH :类的搜索路径 "." 当前目录

       Path: 命令的搜索路径 ...;%JAVA_HOME%\bin

     -- 开始--> 运行-->cmd-->java 验证是否配置成功

 

  五、第一个JAVA 程序

   一个java 文件只能定义一个public 类,并且public 修饰的类的类名要与文件名相同

   vi MyFirstJava.java

 

   public class MyFirstJava{

     public static void main(String[] args){

       String name="tangliang";

       int age=30;

       System.out.println("my name is:"+name);

       System.out.println("my age is:"+age);

     }

   }

   写好后在命令行cd 到文件所在目录,然后打 javac MyFirstJava.java 编译文件

   编译成功后当前文件夹中会出现一个MyFirstJava.class 文件

   运行:java MyFirstJava

   结果:

       my name is:tangliang

       my age is 30

   要学会编译出错后查找错误!

   在文件中在定义一个class Animal{}

   保存编译后文件中就会多一个Animal.class 文件,也就是说,文件中有多少类,那么就有多少class 文件

    注:

    1 、文件名必须和public 修饰的类名一致,以.java 作为文件后缀。

    2 、一个.java 文件中可以有多个class ,但是只有一个public 修饰的类。

    3 .java 文件编译以后,一个class 对应一个.class 文件。

    4 main 函数是我们整个程序的执行入口所以必须是静态公开的。

    

   java 命令执行所做的东西(要用到PATH 的环境变量)

     1. 启动jvm 

     2 、找到类的字节码(class )文件,要用到CLASSPATH 的环境变量

     3 、装载该字节码文件(加载类到内存中)

     4 、找类的主方法,main 方法,执行代码:"": 里面是字符串值,System.out.println(): 向控制台输出,

     括号里面代表的是输出的内容,不加ln 代表不换行,+ :代表字符串的连接。

    

        类:里面可以写方法,可以写属性,一般来说:类与类(后面会讲到不并列的情形),方法与方法之间是并列的。

        刚开始写代码时要注意代码的格式问题,有利于以后代码的维护以及可观性!

 

六、包

   1 、作用,java 程序很庞大的话会有很多类文件,为了分类存放,那么就把相同类型的类文件放在同一个包中。

   2 、语法:   

     package 包名;

     ... 正文;

     包名规范:公司的URL. 项目的简称. 项目的模块(如:com.tarena.abs.model ),好处:保证包的唯一性

     编译时用javac -d 目录 XX.java

     编译好后,class 文件会被自动放在自己定义的包(自动生成的文件夹)中,包会放在编译命令中指定的目录中

     执行时在包所在的当前目录下打 java 包名. 类名            

 

七、创建jar 文件命令

     把指定的包中的class 文件打包成jar 文件

    语法:

      jar cvf jar 文件名 要打包的文件夹

      c create (创建) v:visible (可视的) f:filename (文件名)

      比如:jar cvf abc.jar ./com

      执行完后在当前目录会生成一个abc.jar 的文件,解压后就是com 文件夹,里面还是class 文件

      cvf:create visible filename 创建可视文件名

    如果在别的java 文件中要用到此jar 文件中的类,那么就要在环境变量的CLASSPATH 中多配一个abc.jar

    的路径。然后在类文件中直接import 这个类就可以了

    jvm 查找类的顺序:

    1 )、当前路径下找类

    2 )、从rt.jar 中找类(jdk 提供给我们的<

12
1
分享到:
评论
5 楼 arottenapple 2015-11-12  
4 楼 黯淡流觞 2015-06-11  
3 楼 宋双旺 2013-01-09  
你QQ多少,喜欢你的思想,你懂得,不过我不是菜鸟,不会问题弱智问题的,呵呵
2 楼 youngxu 2011-05-16  
支持一下!
1 楼 mandarin 2011-05-16  
不错,对我很有帮助。。。

相关推荐

    corejava学习笔记

    Java是一种广泛使用的面向对象的编程语言,其基础知识构成了"Core Java"的学习内容。在学习Java时,遵循"多花时间、多动手、多问题"的原则至关重要,因为理论理解与实践操作相结合能更好地掌握知识。 1. **Java语法...

    Core Java 学习笔记

    《Core Java》学习笔记。 我把自己的笔记都以注释的形式写在代码里面了,这样方便理解。 尽管有些部分被标记为“已完成”,但实际上以后说不定我还会折返回来进行修改或者添加一些注释。 当然如果你有什么不理解...

    corejava学习笔记.doc

    Java是一种由Sun Microsystems在1995年推出的高级编程语言,现由Oracle公司维护。...以上就是Core Java学习笔记的主要内容概述,涵盖了从基础语法到高级特性的广泛知识,为深入理解和应用Java打下了坚实的基础。

    core java 学习笔记

    在Java编程中,核心Java(Core Java)是学习Java语言的基础,涵盖了Java语言的主要特性和API。这篇学习笔记主要讨论了Java集合框架,包括Collection、List、Set和Map四大接口以及它们的相关方法。 首先,Collection...

    《Core Java》学习笔记 .zip

    简介 《Core Java》学习笔记。 我把自己的笔记都以注释的形式写在代码里面了,这样方便理解。 尽管有些部分被标记为“已完成”,但实际上以后说不定我会折返回来进行修改或者添加一些注释。 当然如果你有什么不明白...

    学习笔记 java\CoreJava笔记\CoreJava_day12

    在Java编程语言中,SortedSet接口是Set接口的一个子接口,它添加了对集合元素排序的能力。SortedSet接口要求其实现类必须维护元素的排序顺序,这种顺序可以是元素的自然顺序(即元素自身可比较),也可以是通过提供...

    达内core_java学习笔记

    Java是世界上最流行的编程语言之一,...以上就是“达内Core Java学习笔记”中涉及的主要知识点。通过深入学习和实践,初学者可以逐步建立起坚实的Java编程基础,并为进一步学习Java的高级特性和框架打下坚实的基础。

    达内Java培训-CoreJava全程笔记(WORD唐亮版)

    CoreJava DAY01 Java概述 1 CoreJava DAY02 数据类型和控制结构 6 CoreJava DAY03 数组 11 CoreJava DAY04 15 CoreJava DAY05 面向对象 17 ...CoreJava DAY21-22 IO 95 CoreJava DAY23 网络编程 107

    学习笔记 java\CoreJava笔记\CoreJava_day11

    CoreJava_day11的学习笔记主要涵盖了集合框架,特别是关于List、Set和Map接口,以及ArrayList、Vector和LinkedList等具体实现类的知识点。 首先,集合框架是用来存放对象的对象,它提供了一组接口和类,使得我们...

    达内 CoreJava老师笔记汇总

    CoreJava DAY01 Java概述 1 CoreJava DAY02 数据类型和控制结构 10 CoreJava DAY03 数组 20 CoreJava DAY04 27 CoreJava DAY05 面向对象 31 ...CoreJava DAY21-22 IO 174 CoreJava DAY23 网络编程 197

    CoreJava全套详细笔记资料.pdf

    CoreJava全套详细笔记资料.pdf CoreJava是Java编程语言的核心部分,涵盖了...通过对CoreJava全套详细笔记资料的学习,我们可以更好地理解Java语言的基础知识和高级应用,从而提高自己的编程能力和解决问题的能力。

    CoreJava学习笔记.doc

    《CoreJava学习笔记》 Java,作为一种广泛使用的高级编程语言,以其独特的特性和优势深受开发者喜爱。本学习笔记旨在深入浅出地介绍Java的核心概念,帮助初学者快速掌握这一强大的工具。 1. Java特点 Java语法...

    学习笔记 java\CoreJava笔记\CoreJava_day06

    在Java编程语言中,继承是面向对象编程的一个关键特性,它允许子类继承父类的属性和方法,从而实现代码的复用和扩展。在Java中,类的继承是单继承的,即一个子类只能有一个直接父类,但可以通过接口实现多继承的效果...

    corejava的21天课程

    这门课程旨在帮助学员在21天内掌握Java编程的核心概念和技术,每天的学习内容包括详细的代码示例和课堂笔记,确保学习者能够理论与实践相结合,快速提升编程能力。 在课程中,第一天通常会从Java的基础知识开始,如...

    CoreJava卷一学习笔记

    自己学习corejava核心技术卷一时的学习笔记和心得,提出的一些问题

    《Core Java》学习笔记

    《Core Java》学习笔记。 我把自己的笔记都以注释的形式写在代码里面了,这样方便理解。 尽管有些部分被标记为“已完成”,但实际上以后说不定我会折返回来进行修改或者添加一些注释。 当然如果你有什么不明白的...

    Java学习笔记及心得

    ### Java学习笔记及心得知识点详细解析 #### 标题:Java学习笔记及心得 #### 描述:Core Java 学习笔记及心得 pdf格式可打开。涵盖了java的基础入门知识,非常适合自学的及想深入学习理解的同学。 #### 标签:...

Global site tag (gtag.js) - Google Analytics