java特性和优势
- 简单性
- Java就是C++语法的简化版,我们也可以将Java称之为“C+±”。跟我念“C加加减”,指的就是将C++的一些内容去掉;比如:头文件,指针运算,结构,联合,操作符重载,虚基类等等。
- 同时,由于语法基于C语言,因此学习起来完全不费力。
- 面向对象
- 面向对象是一种程序设计技术,非常适合大型软件的设计和开发。由于C++为了照顾大量C语言使用者而兼容了C,使得自身仅仅成为了带类的C语言,多少影响了其面向对象的彻底性!Java则是完全的面向对象语言。
- 跨平台/可移植性(最大的特性)
- 这是Java的核心优势。Java在设计时就很注重移植和跨平台性。比如:Java的int永远都是32位。不像C++可能是16,32,可能是根据编译器厂商规定的变化。
- 这样的话程序的移植就会非常麻烦。
- 高性能
- Java最初发展阶段,总是被人诟病“性能低”;客观上,高级语言运行效率总是低于低级语言的,这个无法避免。Java语言本身发展中通过虚拟机的优化提升了几十倍运行效率。
- 比如,通过JIT(JUST IN TIME)即时编译技术提高运行效率。 将一些“热点”字节码编译成本地机器码,并将结果缓存起来,在需要的时候重新调用。这样的话,使Java程序的执行效率大大提高,
- 某些代码甚至接待C++的效率。因此,Java低性能的短腿,已经被完全解决了。业界发展上,我们也看到很多C++应用转到Java开发,很多C++程序员转型为Java程序员。
- 分布式
- Java是为Internet的分布式环境设计的,因为它能够处理TCP/IP协议。事实上,通过URL访问一个网络资源和访问本地文件是一样简单的。Java还支持远程方法调用(RMI,Remote Method Invocation),
- 使程序能够通过网络调用方法。
- 动态性
- 反射
- Java本质为静态语言,而不是动态语言。动态语言显著的特点是在程序运行时,可以改变程序结构或变量类型,典型的动态语言有Python、ruby、javascript等。Java不是动态语言,但Java具有一定的动态性,表现在以下几个方面 :
- 反射机制;1.动态字节码操作;2.动态编译;3.执行其他脚本代码;
- 多线程
- 多线程的使用可以带来更好的交互响应和实时行为。 Java多线程的简单性是Java成为主流服务器端开发语言的主要原因之一。
- 安全性
- Java适合于网络/分布式环境,为了达到这个目标,在安全性方面投入了很大的精力,使Java可以很容易构建防病毒,防篡改的系统。
- 健壮性
- Java是一种健壮的语言,吸收了C/C++ 语言的优点,但去掉了其影响程序健壮性的部分(如:指针、内存的申请与释放等)。Java程序不可能造成计算机崩溃。即使Java程序也可能有错误。
- 如果出现某种出乎意料之事,程序也不会崩溃,而是把该异常抛出,再通过异常处理机制加以处理。
java三大版本(Write Once, Run Anywhere)
JavaSE:标准版(桌面程序、控制台开发…)
JavaME:嵌入式开发(手机、小家电…)
JavaEE:E企业级开发(Web端、服务器开发…)
JDK JRE JVM (待补充)
jdk目录说明(待补充)
编程时注意的问题
- 注意大小写(java是大小写敏感的)
- 尽量不要使用中文
- 文件名和类名要一致,使用驼峰法并首字母大写命名
- 符号都要使用英文半角
java程序运行机制(待补充编译型与解释型各自的优缺点)
- 编译型(compile):理解成有一个外国人(操作系统)要看中文书,就将它翻译成英文书,那么外国人(操作系统)就能看懂了。这种方式的程序相对于解释型的运行更快
- 解释型(Interpreter):理解成有一个外国人(操作系统)要看中文书,有一个翻译官(解释器)边给他翻译,那么外国人(操作系统)就能看懂了。
使用IDEA
快捷键(建议百度搜索下idea的优化、快捷操作)
- psvm:快速创建main方法,就是public static void main() 的首字母
- sout:快速打印:sout,就是System.out.println() 里的sout
结束
以上是观看 狂神说Java 的视频记录下来的笔记。阅读者需要可到b站观看相关,感谢阅读!
狂神说Java链接地址