初学Java:对于Java的基础认识
文章目录对于Java的基础认识1.Java语言概述1.1 Java是什么1.2 Java语言的重要性1.3 Java语言发展简史1.4 Java语言的特性1.5 Java开发环境的安装2. 认识与运行Java程序2.1 初识Java的main方法2.2 运行Java程序3. 注释3.1 基本规则3.2 注释规范4. 标识符5. 关键字对于Java的基础认识1.Java语言概述1.1 Java是什么Java是一种优秀的程序设计语言它具有让人赏心悦目的语法和易于理解的语义。不仅如此Java还是一个具有完整的计算体系的语言广泛运用与嵌入式系统移动终端企业服务器等各种场合。1.2 Java语言的重要性语言使用的广泛性下图数据来源于TIOBE编程语言社区2017年12月和2018年10月的最新排行榜常年占据语言排行榜榜首是近些年以来热门的编程语言之一。这里需要注意一下TIOBE编程语言社区排行榜是编程语言流行趋势的一个指标每月更新这份排行榜的排名基于互联网有经验的程序员课程和第三方厂商的数量。排名是使用一些有名的搜索引擎。也就是说这份排行榜是有含金量的。注意上述排行榜上的排名不能说明那个语言更好也不能说明哪一门语言不好每一门编程语言都有自己适应的场景。工作领域Java语言在IT领域的应用是非常广泛的具体包括1 企业级系统比如大型复杂的企业级软件系统Java的安全机制以及跨平台性的优势其在分布式系统开发中有广泛应用涉及到金融电信交通电子商务ERP系统等。2Web开发领域java语言在设计初期赶上了互联网发展的风口当时就瞄准了互联网开发凭借稳定的性能表现和较强的扩展性Java语言一直是大型互联网平台的重要解决方案。3android平台应用Android是一种智能手机操作系统Java是一门非常流行的编程语言Android上的应用程序就是大多是以Java来进行编写的甚至于说Android的SDK大部分就是直接将JavaSDK翻译过来的所以具有Java基础也可以快速上手Android。4大数据平台开发大数据相关的各类框架比如Hadoop,spark,storm,flink等以及各种中间件flumekafkasqoop等这些框架以及工具等大多数是用Java语言开发的随着大数据技术的落地应用Java在大数据领域的应用前景也是比较广阔的。在校招中的岗位需求从上述岗位需求来看由于应届生缺少实际工作经验因此在校招时企业更看重学生的基础也就是说会从语言数据结构/算法操作系统网络数据库等进行判定其他的属于加分项。1.3 Java语言发展简史Java语言源于1991年4月Sun公司 James Goling博士 领导的绿色计划后续由于种种原因这项计划被放弃了。随着1995年代时的互联网的发展Java于1995年正式发布。1.4 Java语言的特性以下Java语言特性来源于Java白皮书简单性Java的语法是C语法的一个“纯净版本”相当于对C做减法在Java里。没有头文件指针运算甚至指针语法结构联合。虚基类等等。不仅如此Java开发环境还要远远的超出其他的大多数编程语言的开发环境。面向对象什么是面向对象在Java的世界里一切皆为对象。比如人狗手机电脑等都是对象。所谓的面向对象指的就是依靠对象之间的交互来完成事情比如人用手机完成购物。Java面向对象的特性于C可谓是旗鼓相当的与C的主要不同点主要在于多重继承。在Java中取而代之的是接口概念。而且与C相比Java提供了更丰富的运行时自省功能。分布式微服务Java有丰富的例程库用于处理想HTTPP和FTP之类的TCP/IP协议。Java应用程序能够通过URT打开和访问网络上的对象其便捷程度就好像访问本地文件一样。健壮性Java与C最大的不同在于Java采用的指针模型可以消除重写内存和损坏数据的可能性对于曾经花费几个小时来检查由于指针bug而引起内存冲突的人来说一定很喜欢Java的这一特性。不仅如此Java编译器能够检测许多在其他语言中仅运行时才能检测出来的问题。安全性Java适用于网络/分布式环境。为了达成这个目的在安全性方面投入了大量的精力。使用Java可以构建防病毒防篡改的系统。从一开始Java就设计成了能够防范各种常见的攻击手段1 运行时堆栈溢出。蠕虫和病毒常用的攻击手段2破防自己进程空间之外的内存。3未经授权读写程序体系结构中立编译器生成一个体系结构中立的目标文件格式按照该规范生成的文件只要有Java运行时系统这些编译后的代码就可以在许多处理器上运行。Java编译器通过生成与特定计算机体系结构无关的字节码指令来实现这一特性。精心设置的字节码不仅可以很容易的在任何机器上解释执行而且还可以动态地翻译成本地机器代码而且用其他语言编写的程序在编译后如果能够严格按照字节码文件的规范生成 class 文件也可以在JVM上运行。1.5 Java开发环境的安装这里大家自己去搜索教程就不过多赘述。2. 认识与运行Java程序2.1 初识Java的main方法publicclassTeat{publicstaticvoidmain(String[]args){System.out.println(hello world);}}在这里我们先不解释为什么要这么去写咱们先提出一个方法我们上面写了这么多不要把他当作都有什么特殊含义我们就把他看出单纯的字母之间的相互组合去从零来认识他们。补充当我们通过命令行的形式来进行Java程序的书写时的流程当我们使用第二个命令时java会把上一步生成的class文件二进制文件放入Java虚拟机中然后再输出运行完的结果上述提到的Java虚拟机如果我们是安装了jdk的话那么在jdk中就已经包含了Java虚拟机我们接下来补充一下在jdk里面是什么样子的有3层JVM被JRE包裹然后整体被JDK包裹图示所以说jdk里面已经包含了JVM。当然这个只是补充哈。解释一下上面的代码快以及注意事项public class 是固定写法Test 是类名【大驼峰MaxNum被public修饰的类名必须要和文件名相同】这里的大驼峰的意思是单词首写大写像驼峰public static void main 是 main方法 为固定写法String[] argsargs 叫做 数组 我们Java的数组与C语言是不一样的在C语言中我们表示数组时举例C语言 int a[]Java int[] a其实我个人认为Java的会更好理解一些类型就是在前面就是类型在前面就是int[]就是类型 变量 的形式没有分开来不过这说到底也是我个人的感觉。而前面的 String 代表的是 Java中的字符串类型。合起来就是一个字符串数组System.out.println 相当于 C语言 的 printf \n 这里的 \n 就是Java代码的ln即 println 后面的ln 。后面的hello world 就是我们要输出的内容要输出字符串时需要使用双引号是Java的规范要求。在这里我们再来说明一下这个String[] args,到底有什么用如果咱们有C语言的基础没有也没关系直接看下面的结论我们就会有一个这样的解法publicclassTset{publicstaticvoidmain(String[]args){for(int i0;iarge.length;i){System.out,println(arge[i]);}}}然后我们可以采用命令行的形式IDEA也可以用进行执行会发现没有立刻得出结果需要我们输入一些值当我们输入 zzz hhh ooo 时会输出zzzhhhooo也就是说我们String[] args 存储了我们在运行时所输入的参数我们把他叫做运行时的命令行参数也就是说我们在运行Java程序时是可以输入一些值的然后存储在 arge 中这就是我们String[] args 的意义。不过需要注意的是这里的输入跟C语言的 scanf 可不一样噢。千万注意我们的左花括号一定是在当前行的。我们上述的代码块解释基本上就是这些还有一些细节后面补充。现在我们来看另外一个方面我们从上面的Java程序里面可以看出一个完整的Java程序的结构由以下三个部分组成源文件扩展名 * java源文件带有类的定义用来表示程序的一个组件小程序或许只会有一个类。类的内容必须包含在或花括号里面。类类中带有一个或多个方法方法必须在类的内部进行声明。方法在方法的花括号中编写方法应该执行的语句。总结一下类存在于源文件里面方法存在于类中语句存在于方法中。图例注意:在一个源文件中只能有一个被public修饰的类而且源文件名字必须与public修饰的类名相同接下来我们来看运行时的情况。2.2 运行Java程序Java是一门半编译型半解释型的语言。先通过 javac编译程序 把 源文件 进行编译编译后生成的 .class文件 是由字节码组成的与平台无关的面向 JVM 的文件。最后启动Java虚拟机来运行 .class 文件此时JVM会将字节码转换成平台能够理解的形式来运行。这个一图流就是;xxx .java — javac.exe — xxx.class — 在电脑上输出使用记事本或者IDEA集成开发环境编写Java源程序。使用javac.exe编译器编译Java源文件·生成xxx.class的字节码文件 语法格式javac xxx.java使用java运行xxx.class字节码文件语法格式java xxx注意在运行Java程序前必须安装好JDKJava Development Kit 即Java开发工具包JDK里面就包含了 javac 和 java 工具Java程序最终是在JVMJava虚拟机中运行的。【面试题】JDK,JRE,JVM之间的关系(1) JDK(Java Development Kit)Java开发工具包提供给Java程序员使用包括JRE同时还包含了编译器javac与自带的调试工具Jconsole , jstack等。(2) JRE(Java Runtime Environment):Java运行时环境包含了JVMJava基础类库。是使用Java语言编写程序运行时的所需环境。(3) JVMJava虚拟机运行Java代码。图示在我们编写和运行第一个Java程序时可能会遇到的一些错误源文件后缀不是 .java类名与文件名不一致main方法名字写错类没有使用public修饰。方法中的语句没有以分号结尾分号写为了中文格式JDK环境没有配置好操作系统不能识别javac或者java命令3. 注释注释是为了让代码更容易被读懂而附加的描述信息不参与编译运行但是却非常重要。3.1 基本规则Java中的注释主要分三种单行注释// 注释内容 用的最多多行注释/* 注释内容 */ 不推荐文档注释/** 文档注释 **/ 常见于方法和类之上的描述方法和类的作用可以被javadoc工具解析生成一套以网页文件为体现的程序说明档案。注意多行注释不能嵌套使用无论是单行注释还是多行注释都不参与编译。即编译之后生成的 .class 文件中不包含注释信息代码演示1/** 文档注释 **/publicclassTest{/* 多行注释 */publicstaticvoidmain(String[]args){//行注释System.out.println(hehe);}}2/** **/publicclassTest{/* */publicstaticvoidmain(String[]args){//System.out.println(hehe);}}这里给大家说一下如果是采用记事本来进行源代码的书写那么我们在cmd上运行时可能会报错(这里说报错的代码段是 2 我们通过比较代码段1与代码段2可以发现是中文问题)为什么呢答记事本上的中文是按照 UTF8 编码的javac进行编码的时候 cmd 是按照GBK编码的由于编码的不一致所以我们的中文编译会出现问题会报错。补这个问题是可以解决的统一编码就好在这里就不过多阐述啦。还有的是采用 IDEA 来进行编码的由于 IDEA 的内部已经给我们处理好了这个流程所以感知不到。由于每个人的电脑是不一样的有的人电脑上的记事本可能就是按照GBK中文编码进行编译的不需要进行指定编码方式所以没问题。关于文档注释是相对复杂的也非常重要这边建议大家去学习一下文档注释的各种用法。3.2 注释规范注释的内容要和代码一致匹配并在代码修改时及时更新。注释的长度应该合理即不应该太精简也不应该长篇大论。尽量使用中文一般的中国公司都要求使用中文写注释外企另当别论。要积极向上注释中不要包含负能量例如某某SB等。4. 标识符在上述程序中 Test 称为类名main 称为方法名也可以称其为标识符即****。在上述程序中Test称为类名mian称为方法名也可以称其为标识符即在程序中由用户给类名方法名或者变量所取得名字。【硬性规则】标识符中可以包括字母数字下划线和 $ 符号等等。注意标识符不能以数字开头也不能是关键字且严格区分大小写。【软性建议】1类名每个单词的首字母大写大驼峰2方法名首字母小写后面每个单词的首字母大写小驼峰3变量名与方法名相同publicclassTest{publicstaticvoidmain(String[]args){System.out.println(hello);int a10;int maxNum10;//小驼峰int a310;intA10;int $a10;}publicstaticvoidfunNum(String[]args){}}补充一下1mian也可以作为变量名但是不推荐所以尽量不用。2有的变量命名是合法但是不合理的例如 _a_____这样的变量名。一个大型的工程是由多名工程师协同开发的如果每个人都按照自己的方式随意取名比如personPERSONPerson_person将会使程序非常混乱如果大家在取名时能够遵循一定的约束即规范那多人写出的代码就仿佛是由一个人所写的。5. 关键字通过观察上述程序可以发现publicclass以及static等颜色会发生变化将这些具有特殊含义的标识符称为关键字。即关键字是由Java语言提前定义好的有特殊含义的标识符或者保留字。注意用户不能使用关键字来定义标识符在Java中的关键字有很多这里给大家列出来一部分先了解后续会给一部分进行逐一的详细解释。以上就是一些关于Java的基础认识下次见