本篇目录
1.系列前言(系列由来,系列内容,如何调整好学习本系列的心态,其他说明)
(1)系列由来
(2)正确的心态是学习任何知识的关键
(3)系列的内容安排
2.javaSE和javaEE是个什么?javascript和java是什么关系?
3.java是什么?
4.JDK,JRE,JVM的关系
5.IDEA是什么
6.通过helloworld对java语句进行基础的了解
类和类名长啥样
java的main函数怎么写,定义时于C语言的差异在哪
如何用在只下载了JDK的情况下把java文件运行出结果
javac和java这两句的作用和运行过程
Java程序编译后产生的是什么码
大驼峰,小驼峰的问题
首先我打算在这里说明一下这个系列的由来。
我自己在学习编程之前就有着长期喜欢写杂谈与影评漫评的爱好,总是喜欢说点什么。
当我脑子里面出现了“我为什么不把自己爱说东西的日常爱好和“经常不喜欢说人话”的编程结合在一起的时候,“就用人话,边唠边学”这个系列就诞生了。
相信和我一样作为计算机大类的学生或者了解学科时间差不多甚至更久的各位会普遍发现一个问题,就是外界的各种说法会把一些东西说的玄玄乎乎的,人为的把大家想要了解一些知识的一个门槛人为的拉高,塑造出一个想要学习这些东西就像需要怎么样的智力一样。然后加上近几年各种营销号和无知的人的一顿造势,给人了一种“编程难学”的假象。我曾经就是这种舆论环境的受害者,看到专业术语就害怕,觉得是自己天分不够就不敢更深的触碰;学识不足造成的不自信导致主动把很多机会都送了出去没把握住,结果就是造成了恶性循环。
而在这期间我突然想起来了我高中前后遇到过的两个讲物理的老师的真实经历。
一个是我刚上高中的物理老师,他特别喜欢在讲到一些知识前说这么一句话“接下来这个地方要上难度了,很多人就要开始不会了”,然后就会继续用一板一眼的去讲授下面抽象的概念和知识。
我不评价这句话的对错,但是就我而言,这种话说出来之后对我的影响就是“啊,这个地方老师都说很难了,很多人也不会,那我没听明白就没什么好羞耻的”。
但是问题是,这些他嘴里面“上难度”的东西,是会有大量的考题体现在试卷上的,这就导致我高中前期的物理非常烂。
我的物理成绩好转是由于后面我所遇到的另外一位老师。
这位老师在讲授知识的时候,经常挂在嘴边的一句话是“你们现在学的东西都是编书的人经过认真讨论后给出的适合你们这个阶段学习的东西,而且你们现在学的东西也很浅,没有什么好害怕的”
然后他会把各种抽象的题,抽象的知识用大白话做分解,做拆分,一点一点的破解掉给大家讲明白,消化透。
可以说,我后面物理成绩回到阳间,这位老师的教学方式有一定的功劳在里面。
当我意识到现在我所面临的情况只不过是换了个主语的同样问题后,我想,是时候弹反打回去了。
当我意识到问题所在静下心来去学习这些相关的知识的时候,我发现那些人他们说的都是屁话。只是学习掌握这个程度的学习与天分无关,学习这些知识就是一个吃理解的过程,把各种抽象的东西的外套扒掉,把他们变成人话,加上一定量的练习实践,你就可以学习理解一个知识点了。
这就是我想干的事情,在自己借用写专栏巩固自身所学的同时,帮助那些和我一样有过困扰的学习者们。
专栏的更新会随着我学习java的进度不断推进,内容上我会把我所理解出来的阶段所学知识转化成和我一样的零基础甚至是负基础的学习者们能听懂,好听懂的人话,打肿那些复制粘贴百度百科的伪学习专栏,只会棒读ppt的无良教学视频和劣质教材的脸。
本系列的大体安排流程顺序如下,具体以我后面的学习进程更新的专栏内容为准,这里只是大体给各位一个参考(左边为最先,右边为最后):
数据类型,运算符,逻辑控制,方法,递归,数组,类和对象,复杂度,顺序表,链表,包,面向对象。
我在接下来的时间里会保持一个一到两天一更新的强度来更新文章。
每篇正常篇的构成是这样的↓
1.每篇固定的废话时间(这里会说一些有关系列写作的不适合放在正文里的话,修改说明,加油打气,个人学习思考等等的一些内容)
2.内容补充(如果前篇中有些大点需要补充或者需要更详细的讲的,我会在这里插入这个部分来说明)
3.正文(文章的主体部分,用人话把知识讲明白)
每过一段时间,我会把前面几篇的知识做精简,作出一个总集篇,浓缩提纯,方便你我日后查看学习。
嗯,终于说完了,我们速速开学!
简单的说,SE是基础,又叫标准版
EE叫企业版,是框架
EE会把SE很多功能打包,干活更方便一些(这玩意怎么听着这么像C++和C的关系)
然后EE还会分很多,至于哪个更牛,我还不清楚,不予以锐评。
JavaScrip其实和Java没啥关系,JavaScript和HTML,CSS老哥俩是做前端用的
你要问我前端是啥。。。。那,如果我后面深学了再说也不迟。
这个地方我们省略历史,吹水,最白的说一下啥是java?
很多教科书都喜欢用一句话来描述一个东西它是个啥,我想了想,好像这玩意也可以这么说。
JAVA是一款,由【詹姆斯·高斯林】创始领导制作的,【面向对象】的,比C++更纯净的(没有指针)的,在【编写应用与WEB方面】比较牛的,【后台开发】也可以用的,【具有众多优秀特性】的一款语言。
具有众多优秀特性这个是因为java具有“八大美德”,也就是,【跨平台/可移植性】,【安全性】,【面向对象】,【简单性】,【高性能】,【分布式】,【多线程】,【健壮性】。
至于具体意思是什么,我们后面遇到了再说。
JDK是java开发工具
这里面再说一下JDK,JRE,JVM的关系
jre是Java运行环境,jvm是java虚拟机
jdk包含jre,jre又包含jvm
所以你下载好jdk之后其实你的jre和jvm就都有了
这里和后面我都按照1.8版本的来学习,咋装这块不是我需要写的,自己去CSDN搜,我就不当转载机器人了。
大家都是能看得懂中文和图片的人,我相信你们也是可以的。
这东西感觉和pycharm,vs差不多,都是一个集成开发环境。
更人话一点,更方便写java用的工具。
在哪下?去官网下社区版,然后csdn或者百度查就完事了
今天我们先不用IDEA,只用记事本来完成helloworld的输出,在你写完如下语句后,请右键文件,并在属性中把后缀的.txt改为.java,在这样修改后,你的文件就变成了一个java文件。
public class HelloWorld{
public static void main(String[] args) {
System.out.println("hello");
}
}
来,我们先进行一个高中英语的翻译,很多看起来很玄乎的东西,只要翻译完了就会容易理解许多。
第一行,class,类的意思,这里面的class是一个关键字,用来定义一个类;HelloWorld,就是类的名称。
咋理解类和类名间的关系呢,三国杀玩过吧,它里面的卡是不是都是这样叫的。
【锦囊类】兵粮寸断;【动作类】闪;【装备类】木牛流马
class,就是那个【锦囊类】;HelloWorld,就是那个兵粮寸断。
第二行,好像没啥好解释的,这行是固定写法
JAVA当中的main函数就是这样写的。同时,java中的函数也被叫做方法。
虽然是死记硬背的东西,但是还是有点小说法。
C语言里面,如果你定义数组是怎么定义的,int arr[]。
java里面是这么定义的,int[] arr
第三行是java其中一种打印函数,双引号里面引的是字符串,也就是说我们这次打印出来的是hello。
最后的最后,和其他语言一样,括号{}要对着看一下哪个对哪个,看看包没包起来。
在大体了解了这几行都是什么意思后,我们就要开始想办法让这几行语句打出一个hello了
哪怕你没有idea,只要你安装了jdk,就是可以运行的
步骤如下:
>cd 你的路径 >javac 你的文件名.java >java 你的文件名
1.WIN+R 调出运行
2.输入cmd
3.输入cd(cd是读取文件夹的意思,这里我在当时没有放到文件夹里导致后面会报错,所以记得建个文件夹)
4.cd 后面 空格,后面加你建的文件夹的路径,不要引号,然后回车
做到这里就代表你已经读取文件夹了
5.输入javac,后面加空格,你的文件名.java【这里的java是后缀,如果你是记事本写是记得把后面的txt改成java】
6.如果没什么错误的话,你会在那个文件夹里面看见一个同样名字的,.class的文件
【这里的话有个点,如果你的这个类是public修饰的,你的类名就需要和文件名一致】
7.然后,java,文件名
你就能看见一个hello了
就像这样的↓(绿的涂上的就是路径里的用户名,这里就不放出来了)
然后你还会发现一件事情,我把.class的那个文件发给你,你就也能跑了
对,不需要源文件,就可以跑
这就是java所说的“一次编译,处处运行”
另外你还会发现一件事情,就是如果我改了类名的话,就会多出来一个新的class文件
这里也是java的一个小点,就是
不是一个文件对应一个字节码,而是一个类对应一个字节码。这样就可以保证我用到哪个类就加载那个类就可以了
也就是说.java程序通过javac命令编译生成.class字节码文件,.class存储的是.java中类的字节码文件,一个类对应一个字节码文件,随后字节码文件加载到jvm进行运行。
java源程序通过javac 编译生成字节码文件,通过java命令运行java程序
java程序在编译后产生的是字节码,然后有的题有时候就会很想装高手的给你写成英文,所以我们也防一手,字节码的英文是byte code
你有没有发现一件事,就是我在命名的时候用的是HelloWorld,而不是helloWorld,这就涉及到大小驼峰的问题。
首先来说一下大小驼峰是什么,大小驼峰是两种命名方法
啥是小驼峰呢?就是除了第一个单词,剩下单词的首字母都大写
举个例子,yuZhouPai
大驼峰,就是把第一个单词的首字母也给大写了
举个例子,YuZhouPai
在后续过程中我们类的标识符用大驼峰,方法变量的标识符用小驼峰
我们第一次的专栏就先是这么多的内容,非常感谢各位大佬的指点与批评指正,有了更多的建议这个专栏才会做的更好,我们下期再见!!!