学啥语言都行,大同小异。html
踏实学,最快闭关四个月能找到工做。【这是我自个知乎上看的】java
计算机基于冯诺曼体系编程
计算机三代语言api
机器语言缓存
汇编语言安全
高级语言服务器
面向过程(C)多线程
面向对象(C++、JAVA、C#)eclipse
C语言是现代语言鼻祖jvm
C++是在C语言基础上设计的面向对象语言
Java可被称为C++-
Object-C是IOS和Mac开发中的主流语言
C#是微软山寨的JAVA,但因为与Windows绑定,失去了Java的跨平台优点。
简单性
面向对象
可移植性(跨平台性)【核心优点】
>一次编写,随处运行,对不一样平台兼容性的处理由JVM处理,咱们只须要专一于Java源文件的开发。
高性能
分布式
动态性
多线程
安全性
健壮性
J2SE(JAVASE、Java 2 Standard Edition)
>定位在我的计算机上的应用【Java基础】
J2EE(JAVAEE、Java 2 Enterprise Edition)
>定位在服务器端的应用【JavaWeb、安卓使用】
J2ME(JAVAME、Java 2 Micro Edition)
>定位在消费性电子产品的应用【使用较少】
JVM(Java Virtual Machine)
JVM是一种规范,可使用软件来实现,也可使用硬件来实现,就是一个虚拟的用于执行bytecodes字节码的计算机。他也定义了指令集、寄存器集、结构栈、垃圾收集堆、内存区域。
Oracle公司制定了JVM规范,方便开发者开发JVM。
JVM是指在一台计算机上由软件或硬件模拟的计算机;它相似一个小巧而高效的CPU。
byte-code代码是与平台无关的是虚拟机的机器指令。
JAVA的跨平台实现的核心是不一样平台使用不一样的虚拟机,不一样的操做系统有不一样的虚拟机。Java 虚拟机机制屏蔽了底层运行平台的差异,实现了“一次编译,随处运行”。
java字节代码运行的两种方式:
方式interpreter(解释)
Just-in-time(即时编译):有代码生成器将字节代码转换成本机的机器代码,而后能够以较高速度执行。
JVM负责将java字节码解释运行,边解释边运行,这样,速度就会受到必定的影响。JAVA提供了另外一种解释运行的方法JIT(just in time),能够一次解释完,再运行特定平台上的机器码,高级的JIT能够只能分析热点代码,并将这些代码转成本地机器码,并将结果缓存起来,下次直接从内存中调用,这样就大大提升了执行JAVA代码的效率。这样就实现了跨平台、可移植的功能。
JRE(Java Runtime Environment)
JRE包括:Java虚拟机(JVM)、库函数、运行Java应用程序和Applet所必须文件
jre就是java运行时环境,包括了jvm和其它一些java核心api,任何一台电脑,只有安装了jre才能够运行java程序.
Java运行环境的三项主要功能:
加载代码:由class loader 完成;
校验代码:由bytecode verifier 完成;
执行代码:由 runtime interpreter完成。
若只是运行JAVA程序,只须要JRE(一般很是小)
JDK(Java Development Kit)
sdk(也就是jdk)是jre的超集,是在jre的基础上增长了编译器及其余一些开发工具。
若要开发Java程序,就须要安装JDK。
JAVA语言的应用范围
桌面应用编程
WEB客户端编程
WEB服务器编程
手机编程(J2ME或者如今的Android系统上开发应用程序)
机器人编程
下载JDK
安装JDK
环境变量配置
测试环境是否安装成功(cmd测试)
public class HelloWorld { public static void main(String[] args) { System.out.print("Hello World!"); } }
环境变量的配置,是方便你打Java、Javac时直接执行文件
计算机的高级编程语言类型: 编译型 ,解释型. Java 语言是两种类型的结合;
第一步:编译
利用编译器(javac)将源程序编译成字节码文件,字节码文件名:源文件名.class
第二步:运行
利用虚拟机(解释器,java)解释执行class字节码文件。
Java对大小写敏感。
关键字public被称做访问修饰符(access modifier),用于控制程序的其它部分对这段代码的访问级别。
关键字class 代表Java 程序中的所有内容都包含在类中,Java是一种纯面向对象的语言。
一个源文件中至多只能有一个public的类声明,其它类的个数不限,若是源文件中包含一个public 类,源文件名必须和它中定义的public的类名相同,且以“java”为扩展名。
一个源文件能够有多个class,正确编译后的源文件,会获得相应的字节码文件,编译器为每一个类生成独立的字节码文件,且将字节码文件自动命名为类的名字且以“class”为扩展名。
main方法是Java应用程序的入口方法,它有固定的书写格式。
在Java中,用花括号划分程序的各个部分,任何方法的代码都必须以“{”开始,以“}”结束, 因为编译器忽略空格,因此花括号风格不受限制。
Java中每一个语句必须以分号结束,回车不是语句的结束标志,因此一个语句能够跨多行。
编程风格:
注意缩进!
成对编程!
文本编辑器
UltraEdit
EditPlus
notepad++
sublime text3
集成开发环境(IDE:Integrated Development Environment)
JBuilder (http://www.borland.com)
Eclipse (http://www.eclipse.org)【之后工做和学习的重点!】
MyEclipse【收费】
NetBeans(http://java.sun.com)
WSAD (http://www.ibm.com)
intelliJ(http://www.jetbrains.com/idea/)【至2017年公认最好用,但学习成本高,收费】
cd 进入一个目录
cd ..
dir
上下键:查找敲过的命令
Tab键:自动补齐命令
cd【.. ~ . /】
ls
pwd
clear
history
单行注释//、多行注释/**/
注释不出如今字节码文件中,编译器编译时将跳过注释。
public class Five { public static void main(String[] args){ System.out.print("test");//我是单行注释 System.out.println("test2"); /*我 *是 *多 *行 *注 *释*/ } }
标识符:用于类、方法、变量的命名。
类名首字母大写(Man)
方法、变量首字母小写(myCode、eat())
标识符都使用驼峰命名法。
Java标识符命名规则:
标识符必须以字母、下划线_ 、美圆符$开头。
标识符其它部分能够是字母、下划线“_”、美圆符“$”和数字的任意组合。
Java 标识符大小写敏感,且长度无限制。
不能够是Java的关键字。
public class test006 { public static void main(String[] args){ int $abc = 3; int _abc = 3; int abc = 3; int _ = 3; int $ = 3; int a = 3; //int 3abc = 3;//错误 //int #abc = 3;//错误 int 尚学堂 = 3;//能够,但不推荐 } }
JAVA不采用一般语言使用的ASCII字符集,而是采用Unicode这样的标准的国际字符集。所以,这里的字母的含义:英文、汉字等等。(不建议你们使用汉字来定义标识符!)
编码与解码时若不使用同一字符集,则会出现乱码。
UTF-8,中文3个字节表示一个汉字、西欧英文1个字节表示一个字母,阿拉伯2个字节表示一个字符。
【个人拓展】经常使用中文字符用utf-8编码占用3个字节(大约2万多字),但超大字符集中的更大多数汉字要占4个字节(在Unicode编码体系中,U+20000开始有5万多汉字)。GBK、GB2312收编的汉字占2个字节,严格地用iso8859-1没法表示汉字,只能转为问号。参考资料