我的狐仙女友吧 关注:38,639贴子:274,025

LZ发表一下自己写的java教程

只看楼主收藏回复

LZ最近上课很无聊,于是写起了教程
现在已经写了12章节,打到电脑上了6章
1l先发3章,度娘勿吞!
第一章 java概述(其实是这篇教程的开篇)
这是一篇技术教程,它仅仅是个教程,为什么说它是个教程?因为它就是个教程,它能以最简练的语言告诉你什么是java。当然,由于我也just是个young初学技术宅,本身也不怎么懂编程(真的不懂!也只是学完了java可视化swing而已!真的(。・ω・。)呵呵→_→),所以我写的只是基础中的基础罢了,若是有出错的地方…也请多多指教(画个圈圈诅咒你)。java语言博大精深,所以我写这个教程可能花费数百年(夸张一下),但自从我决定写这篇起,我已经做好了不弃坑的打算啦!(别给我找语病,我语死早)
Never clever and get to business(闲话少说,言归正传),想必看此教程之人必定是一心(或有兴趣)学好java的小白(大神请右转)。若是大神的话…请跳过好了,免得喷我…
好了好了…这才进入正题,若你是想学好java的人,那你一定要仔细听我说咯,无论学什么汇编语言(其他的东西也一样),要心细,要学的悠闲而又不失风度,要在乐中学,这才是正确的学习方法。(其实这是大家都知道的东西)若你足够心细,那就阅读下去吧!
有一句话很出名,但我不知道谁说的,于是抄录于此:
如果爱可以改变一切,那就让它改变吧
这明显是一句废话,其实这是真理!
不过话说我讲编程,怎么走到爱上了?好吧!我承认他们有关系。
闲话说了这么多,教程还没开始。如果你已经厌倦了看这篇教程,那它就不适合你,接下来的东西你也大可不用看了,免得硬着头皮看,结果什么也没学会,反倒看着看着睡着了,把头磕破找我要医药费来了…
我为什么说这么多没用的话?当然是为了让这个教程不要太枯燥,然后我就要付你的医药费了。那么正题正式开始!(这才是真正的开头!)
接下来是历史课,我将告诉你java的前世今生!预知后事如何,请看下章分解!第二章,java历史。(其实这是结尾!)
第二章 java历史和java运行机制
java语言的生命已经持续了10余年之久,而如今,由Sun(升阳)公司开发的java语言已经被Oracle(甲骨文)公司收购,java由原来的j2se、j2me、j2ee已经变成了java SE、java ME、java EE。我也只能告诉你什么是SE、ME、EE(毕竟我也不会-_-||)。
那么java SE ME EE到底是个啥呢,请看下图分解:
→SE:普通版,你家用的就是这个
java →ME:微型版,用于手机电话等
→EE:企业版,不解释(其实我也不知道是啥)
好!本节课到此结束,同学们下课!
你以为这篇教程就此结束了?那你就错了!在一周的第五天,自习最多的一天,我却不知该干什么,无聊感瞬间涌上心头,百般无聊之下,写出了这章之内容,也暂且消遣一下时间,明天便是期中考试了,而进入初三的我丝毫没有要努力的想法,我的时间大部分都用在了学技术上,但我学业成绩仍很理想→_→,尽管我如同一个坏孩子,不写作业,不认真听课(我会告诉你我能边听课边干别的?),我的成绩依然在年级中上游水平,我会在上课的时候看技术书,但老师讲的东西我也都学会了。个人认为我一心多用和一次性记忆力都很超常,真的!正因如此,我从来不背文科的题,这也是为何我文综一如既往那么低。生活反反复复显得如此无聊,距中考还有226,而我依然以最平常的眼光看待着一切,每天最大的乐趣也只是为了爱情和事业努力的奋斗。不过话说回来,课间有点太长了。好!现在进入正课!
java的运行机制很特别,这也决定了java语言最大的一个特点,java中命令的运作依靠java虚拟机(JVM),JVM是java的核心中的核心,没了这个,java指令无法被执行,所以说JVM是java运行库,而相对于exe可执行文件而言,java的执行文件由一大堆的代码编辑到一个文本文件(后缀为.java的文本文件)编译生成的字节码文件(后缀为.class,可由JVM直接运行)组成,当多个字节码文件组合起来时,就形成了一个新的东西,即包(实质上是后缀名改为.jar的.zip压缩包,真的,不信你改回.zip然后用压缩软件打开),这个东西以后会讲到。以上就是java的运行机制,接着看图解:
java源代码文件(*.java)
编↓译
java字节码文件(*.class)
执↓行
JVM
返↓回
结果
看到图是不是觉得豁然开朗了呢?是不是觉得java很神奇呢?其实我写这篇教程的目的,有一点就是让你们深深地爱上java的!(又说爱,编程和爱哪里来的关系?)
其实这一章的教程还没有结束→_→,若你匆匆的跳过这一点内容,你将错过一个重点,细心的盆友们应该已经发现了,我刚刚有提到过java的特点,不知你是否记得,总之,这个特点就是跨平台性,正是因为JVM的存在,我们只需要在任意一个平台上构建JVM环境,并且分配足够的内存,程序就可以在上面运行,是不是很神奇?→_→好,下一章我们讲java的编译,这章就到这里,下课!
第三章 java编译
面对期中考试,大家总抱以非常重视的态度,不免让我想起一句话,分数是学生的命根,而对于我而言,分数,一点也不重要,取得再高的成绩又有什么用呢?学业?文凭?你是希望用一张纸代表你的成就?换个角度来说,现在我们学的九科里,有多少知识能用到?又有多少知识在你用到的同时又忘却了?如果注定将来会忘掉这些东西,为什么还要去学呢?这不是浪费脑力资源嘛?所以说,我们学习要会学,学需要的,丢掉无用的,这才是会学。对于在期中考试答完卷很无聊的我,也只能在纸上陶冶情操了。看着那些东倒西歪的考生,我也只能抱以惋惜之情了,谁让我带了个本你却没带呢?不过,还有十五分钟收卷,我恰好在最后一排,倒霉的是我,于是乎先用笔消消气,但这两天很高兴,那我就大人不记小人过啦!饶你一命!诶,废话说的太多了呢。好!正课开始!
想必大家都明白的,java程序不能直接在各个操作系统上直接运行,他需要JVM的存在,这和爱情有了共同点,任何或多或少的步骤都会改变一个未知的结局。好吧-_-||我不扯淡了。但即使有JVM的存在,我们依然不能将写出的代码直接运行,于是乎,我们就要用一种方法把写的代码转换成可执行的程序,这一步叫做编译,java的编译工具是javac.exe,由于javac.exe是汇编中的一个工具,于是乎就出现了两个问题:
1.“我的java里没有javac.exe”额,请去下载java jdk,那么jdk是啥玩意?我来说明一下jdk和jre,jdk是java编程环境的缩写(英文全称我忘了),jre是Java Runtime Environment的缩写,看不懂?找度娘翻译去!度娘不行?找谷歌翻译去!好吧!我直接揭晓答案,那就是java运行时环境的意思,有了jre,恭喜你,你可以运行一切java程序啦!你有jdk?那么更恭喜,你有了可以编程java应用程序的先决条件啦!
2.“我的命令提示符中显示‘javac’不是内部或外部命令,也不是可运行的程序或批处理文件”在安装jdk之后,你需要对你的系统进行简单配置,是不是感觉很麻烦?但事实并不麻烦,你只需要创建一个环境变量再更改(环境变量是啥?自行度娘去!)我先说要改的,请将环境变量中的Path改成“java路径\bin” eg:“C:\Java\jdk 1.7.0.1\bin”,其实Path变量用于指定cmd的外部程序目录,如果像刚刚那么做会有一个副作用,你的cmd可以使用java的工具,但是别的默认的系统外部工具就不能用了,所以←_←你可以这么做,以避免此情况:选择在原有值后加;加刚刚的东西,eg:原值+;C:\Java\jdk 1.7.0.1\jre\bin。而另一个要新建的值,名为ClassPath,它用来干什么呢?用来搜索你的java应用程序位置,有了ClassPath后,你在运行你的java程序时无需提供完整路径,是不是很高大上啊?但一般来讲,我们不需要加这个(编程工具不依靠这个)况且我们很少手动编译什么(大不了用全路径)所以用不到,但你要加,那我就告诉你:java路径+\jre\lib\dt.jar;java路径+\jre\lib\tools.jar eg:C:\Java\jdk 1.7.0.1\jre\lib\dt.jar;C:\Java\jdk 1.7.0.1\jre\lib\tools.jar。
javac.exe是一个cmd外部工具,不懂怎么用参阅cmd和msdos批处理的文章,不多介绍。以下给出javac.exe的语法:
javac [-options] source
其中,source指.java文件
-options如下:
-cp 指定参考类目录 eg:javac -cp C:\Java\jdk 1.7.0.1\jre\lib\dt.jar
-classpath 同上
-d 指定输出目录,不解释
-depvecation 使用旧版本API可加入该项
-edcoding <edcoding> 指定编码方式(不解释)
-g 提示除错
-g:none 不提示除错
-g:lines 提示行数除错信息
-g:source 提示java程序除错信息
-g:vars 提示局部变量(以后会说)除错信息
-help 不解释
-j <flag> 向jre传入参数
-nowarn 不显示Warning信息
-source <release> 支持原始java的兼容版本(我也不懂是什么)
-sourcepath <path> 指定原始java目录(跟上面那个有关系,但还是看不懂→_→)
-target <release> 指定产生的字节码文件的兼容版本(到这里似乎明白了什么)
-verbose 显示长格式的编译结果
-version 不解释→_→
什么?你没看懂?对,我也没看懂,反正没多大用,了解了解就好了。
这一章的教程断断续续写了半个月,中间是起伏跌宕的心情,有喜有悲,期中考试明明还很高兴,而还没考完就已经眉头紧皱了。没办法,数学物理卷子没写完,成绩大不如前,从350掉到441名,如果写完了数学物理,我最起码也要300名以内,加上又开了家长会,回家就是一顿迎面而来的埋头大批一气,只好和朋友去WB消消气,又遭遇LOL五连跪,让我作为APM超高的技术宅情何以堪,而情感问题又搞得精神方面也被摧残至极了。唉!事事不顺心啊!也真是苦命啊!这时的我也只能用笔来排遣失落的心情了。而我,也将在,消遣之中,讲述,下一章之内容…


IP属地:湖南来自Android客户端1楼2014-11-25 23:31回复
    第四章 java的运行及内部工具
    2014年11月17日 星期一,晚上 17:50,晚自习:政治
    老师又在讲一些对我而言毫无意义的无稽之谈了!选举权…神圣的一票…,早就无心听课的我或许只是想要把心中积聚的气发到现实生活之中罢了。政治是什么!不就是埋没思想的土么!听不听没有什么必要!
    脑子中响起了一首歌,初音的《ARiA》,心里也只有为情惆怅的心情,伴随这种心情,我含情脉脉的开始了新课。
    突然很想吟诗,却又因为语文差,吟不出来。
    java的运行非常简单,也是一个程序,java.exe(此处也需要一部分批处理知识),用此程序可以执行各种java应用程序,具体语法…你愿意看看也好:
    java [-options] class [args…]:执行class字节码文件
    java [-options] -jar jarfile [args…]:执行jar包文件
    class:字节码文件路径,无需后缀
    jarfile:jar文件路径,需后缀
    args:传入参数(以后会讲)
    -option如下:
    -cp <path> 不解释
    -classpath 同上
    -client 指定客户端
    -D <name>=<value> 属性设定 eg:java -D java.security.policy="socket.policy"…
    -help 不解释
    -jar 执行jar文件
    -server 指定服务端
    -showversion 显示执行器版本
    -verbose:class 显示类的长格式输出结果
    -verbose:gc 显示GC的长格式输出
    -verbose:jni 显示NativeLibrary与JNI的长格式输出
    (上面三个没看懂→_→忽略掉吧)
    -version 版本
    -version <value> 设置版本
    当运行一个java应用程序时,会在相应的批处理文件窗口中显示运行返回的东西,有时候这些数据用于调试,为防止一些信息的外泄,java亦提供javaw.exe程序,用来在运行一个java应用程序时不显示cmd窗口。
    好,说完了运行方式,我们来说说内部工具,java内部工具可谓数不胜数,以下是部分工具及用法,其实没多少有用的:


    IP属地:湖南来自Android客户端2楼2014-11-25 23:32
    回复
      2026-04-04 19:30:53
      广告
      不感兴趣
      开通SVIP免广告
      5.Eclipse:由IBM公司开发的项目,不仅支持Java,亦支持Android、HTML、CSS、JavaScript、PHP、C与C++的开发,优点在于简约设计、树形结构图、节点资源分类系统、亦提供模板系统,可由不同的模块实现不同的功能,比如实现可视化界面,缺点嘛…我看木有…个人用的很方便。
      这篇教程再次用了两天写完了,又是一节政治课,在写这篇教程之时,早已不知是喜亦或悲,明明想要快乐,却忘不了悲伤的事情,也只有如此多愁善感之后才会重获新生吧!今天再次翻开了旧书,另一本已经离我而去,寄给我亲耐的徒弟了。而现在看的一本,也只能使我怅恨久之了,不由得想起一句诗:抽刀断水水更流,举杯消愁愁更愁。偶然之间在我的黑客工具里找到一封“情书”,这是朋友送给我的工具,其中的一个DDOS攻击器竟然内涵一封“情书”,软件标题是xxx我爱你,在功能区旁边是一个标签,是整整的一封信,亲爱的xxx…虽说不知是谁所做,但仍然是羡慕嫉妒恨啊!真希望有一天我也能这么一次。心中再次叹息起来。我再次翻开了书:
      Java具有以下之特色:
      1.物件导向设计。
      2.跨平台。
      3.可携性。
      4.系统安全。
      5.强大的型别安全(Type Safety)机制提供安全的执行环境及验证形态安全性(Type Checker)。
      6.自动记忆体管理。
      7.直译式:java程式是以平台无关的Bytecode形式存在的。
      8.提供结构化的例外处理机制(Exception Manager)。
      9.提供物体记忆体自动回收的管理机制(Garbage Collection)。
      10.提供应用程式安全性验证环境(Security Engine)。
      11.多工执行绪应用程式(Thread)。
      写到这里,物理课都已经下课了。既然看到了,我就讲解一下吧!
      第一条指的是有很多物价的设计模板。
      第二条不说些什么←_←。
      第三条针对手机、Pad等设备。
      第四条不想说什么。
      第五条也是安全,没什么可说的。
      第六条内存自动分配。
      第七条同第二条(或许有些区别?)。
      第八条错误处理机制。
      第九条已占用内存自动回收处理机制。
      第十条安全类的…(其实我不懂)
      第十一条多线程不解释。
      已经中午放学,只剩下我(们)了,却什么也说不出,终于我学会了沉默。


      IP属地:湖南来自Android客户端5楼2014-11-25 23:35
      回复
        第六章 java控制面板
        时近15:30,中午的悲伤或许已经缓解了,看了一数学课的《三国演义》,又猛然在化学课上感到一丝无聊,于是写起了这篇教程。突然想到上次的鬼故事,那我来解释一下:这个电梯有鬼,为什么呢?小明按下电梯马上打开了门,说明电梯在1层,那么那个妇女为什么不自己把电梯按开出来呢?说明电梯从内部无法打开,也就意味着…我不吓人了,那我就讲讲java的控制面板吧!
        java控制面板,顾名思义,它在系统控制面板之中,用于控制(设置)网络连接,Cookie,Java Update自动更新,Java Applet执行时设定,Java应用程序运行时设定,安全证书管理和高级设置,下面介绍其中的项目:
        1.网络设置:用以设定HTTP连线是否使用代理服务器。
        2.Cookie:不解释,自行百度。Cookie目录为C:\Users\用户名\AppData\LocalLow\Sun\Java\Deployment\ache
        3.Java Runtime Environment设定:用以监视JRE版本及设定执行时参数,其中分别定义JRE的平台,产品号,位置,参数(运行时)。
        有关JRE的设置,均储存于Java Deployment目录的deployment.properties,其中Deployment目录位于:
        C:\Users\用户名\AppData\LocalLow\Sun\Java\Deployment
        其中属性为下表所示:
        额此处出现表格了。。到时候我把表格数据删格化再发来吧!先到这里!


        IP属地:湖南来自Android客户端6楼2014-11-25 23:37
        回复
          感觉好高端


          IP属地:日本来自iPhone客户端7楼2014-11-25 23:39
          收起回复
            楼主水得一手好经验


            IP属地:重庆来自Android客户端9楼2014-11-26 00:41
            收起回复
              哥的流量如江河之水,一去不回


              来自iPhone客户端10楼2014-11-26 09:23
              收起回复
                小灰灰简直屌到不行啊,看不懂的给跪了。


                IP属地:湖北来自Android客户端11楼2014-11-26 10:53
                收起回复
                  2026-04-04 19:24:53
                  广告
                  不感兴趣
                  开通SVIP免广告
                  去年选修的。。。


                  IP属地:山东来自Android客户端13楼2014-11-26 12:13
                  收起回复
                    由于lz困了所以今天不码字了,明天一块发


                    IP属地:湖南来自Android客户端14楼2014-11-26 21:53
                    回复
                      根本不知道写了什么。。。。。


                      IP属地:日本来自Android客户端15楼2014-11-26 22:52
                      回复
                        不明觉厉。。。真的一点都看不懂


                        IP属地:日本来自Android客户端18楼2014-11-30 20:53
                        回复
                          谢谢lz
                             --美好的时光,请你要珍惜,我试着多爱你,请你要真心。


                          IP属地:天津来自Android客户端19楼2014-12-09 12:09
                          回复