java的特点

跨平台

  • 所谓的平台,我们可以理解为操作系统。
  • 大部分语言是不能跨平台的,比如c语言的程序在windows和linux上需要编写不同的代码。
  • java程序是运行在JVM(Java Virtual Machine - Java虚拟机-虚构出来的计算机)中, JVM是Java跨平台使用的根本。
  • Java既是编译型语言(编译为字节码,字节码可以在jvm中运行)也是解释型语言(jvm把字节码解释为具体平台的机器指令)。

可靠安全

  • 强类型语言,变量先定义再使用,编译时会检查变量类型是否正确。
  • 使用引用类型代替指针,指针可以直接操作内存,可能导致程序崩溃。
  • JVM会对字节码进行检查。
  • 异常处理机制,对可能错误的代码,进行异常检查。

面向对象

  • 支持封装、继承、多态,模块化,高内聚,低耦合,通过接口联系。
  • 一切都是对象。

多线程

  • 多线程功能使得在一个程序里可同时执行多个小任务。
  • 多线程带来的更大的好处是更好的交互性能和实时控制性能。

分布式计算

  • 包含HTTP和FTP等协议类库,可凭借URL操作网络对象,访问方式与访问本地文件系统几乎完全相同,为分布式编程提供了很大方便。 
  • 强大的网络编程,比如socket编程。

动态特性

  • 动态特性,允许程序动态地装入运行过程中所需要的类。
  • 实现方式1:反射Reflection(慢,耗性能,是直接invoke发生的近1000倍)和动态代理。
  • 实现方式2:Instrumentation(java6新特性), 运行时类转化Runtime Class Transformation。

java工作方式

  1. 编写源代码。列入存为 Party.java

  2. 编译器。 执行javac来编译源代码。编译器会检查错误。

  3. 如果程序没有错误,编译器产生编译文件Party.class文件。这个编译文件由字节码组成。这个编译文件与平台无关

  4. 启动JVM(Java虚拟机),运行Party.calss. JVM将字节码转换为平台能理解的形式来运行。

开发工具

JDK工具

IDEA

Intellj IDEA 简易教程 http://www.cnblogs.com/rocedu/p/6371315.html#SECDEBUG

java术语

java 三个体系

  • JavaSE(Java Platform Standard Edition,java平台标准版)
  • JavaEE(Java Platform Enterprise Edition,java平台企业版)
  • JavaME(Java Platform Micro Edition,java平台微型版)

java专有术语

  • JDK(Java Development Kit):Java 语言的软件开发工具包
  • OpenJDK:Java SE 的一个免费开源实现, 不包含浏览器集成或 JavaFX
  • JRE(Java Runtime Environment): Java 运行环境,JRE由Java API和JVM组成
  • JVM (Java Virtual Machine):java虚拟机
  • JAVA_HOME:java安装位置,用来配置环境变量
  • classpath: 类路径,让java 解释器知道到哪里去找类

源程序结构

Java 包(package):为了更好地组织类,Java 提供了包机制,用于区别类名的命名空间。

包的作用如下:

  1. 模块化:把功能相似或相关的类或接口组织在同一个包中,方便类的查找和使用。
  2. 唯一标识:【包名+类名】在同一个程序中必须是唯一的,避免名字冲突。不同包的类名可以相同,但使用时应该指定包名。
  3. 权限控制:类名前不加任何权限修饰词时,代表只有这个包的类可以访问这个类。

Java中的访问权限控制的等级,按照权限从大到小依次为:

Public -> protected -> 包访问权限(没有权限修饰词)-> private。

注释

行注释  //
多行注释 /**/ 文档注释:
/** 标签 描述 示例
@author 标识一个类的作者 @author description
@version 指定类的版本 @version info @param 说明一个方法的参数 @param parameter-name explanation
@return 说明返回值类型 @return explanation
@deprecated 指名一个过期的类或成员 @deprecated description @exception 标志一个类抛出的异常 @exception exception-name explanation
@throws 和 @exception标签一样. The @throws tag has the same meaning as the @exception tag. {@link} 插入一个到另一个主题的链接 {@link name text}
{@linkplain} 插入一个到另一个主题的链接,但是该链接显示纯文本字体 Inserts an in-line link to another topic.
@see 指定一个到另一个主题的链接 @see anchor
{@value} 显示常量的值,该常量必须是static属性。 Displays the value of a constant, which must be a static field.
*/

参考

java基础-01基本概念的更多相关文章

  1. java基础 01

    java基础01 1. /** * JDK: (Java Development ToolKit) java开发工具包.JDK是整个java的核心! * 包括了java运行环境 JRE(Java Ru ...

  2. java基础01

    1. /** * JDK: (Java Development ToolKit) java开发工具包.JDK是整个java的核心! * 包括了java运行环境 JRE(Java Runtime Env ...

  3. 一、Java基础--01

    Java基础测试题分析 第一题是关于基本的算法知识,这个很有必要去掌握以下,在学校也经常听老师们说找工作比试面试会出一些这方面的知识,我拿到的第一题是关于排序的,虽然很简单,但是我还是要提醒一下基础不 ...

  4. Java基础(1) - 语法 & 概念

    Java基础语法 基础 1. Java对大小写敏感 2. Java注释 //单行注释 这是一行注释 /* 这里是多行 注释 */ /** 这里是文档注释 @author 0o晓月メ */ 3. 访问修 ...

  5. java基础-01代理类

    简单的代理类实现案例主实现类:ProxyTestimport java.lang.reflect.InvocationHandler;import java.lang.reflect.Proxy;im ...

  6. Java基础01 ------ 从HelloWorld到面向对象

    Java是完全面向对象的语言.Java通过虚拟机的运行机制,实现“跨平台”的理念.我在这里想要呈现一个适合初学者的教程,希望对大家有用. "Hello World!" 先来看一个H ...

  7. Java基础01 从HelloWorld到面向对象(转载)

    Java是完全面向对象的语言.Java通过虚拟机的运行机制,实现“跨平台”的理念. "Hello World!" public class HelloWorld{    publi ...

  8. java 基础 01 变量和注释、数据类型

    1,变量和注释 比如:姓名:xiaoming 年龄:18 1.1变量的基本概念 当需要在程序中记录单个数据内容时,则需要声明一个变量来处理,而变量的本质就是内存中申请一块存储单元用于存储数据内容,由于 ...

  9. java基础知识-基本概念

    1.1 java语言有哪些优点? 1.java语言为纯面向对象的语言. 2.平台无关性.java语言的优点便是“一次编译,到处执行”.编译后的程序不会被平台所约束,因此java语言有很好的移植性. 3 ...

随机推荐

  1. python --- 基数排序算法

    基数排序的方式可以采用LSD,由键值的最右边开始,适用于数值整数.或者MSD,由键值的最左边开始,适用于字符串整数.在LSD基数排序中每一次的处理都是将关键字按顺序放置在其各自的称为桶的数据结构中,而 ...

  2. Linux 进程终止后自动重启

    /opt/a.sh #! /bin/bash ps -ef | grep python3 a.py | grep -v grep | grep python3 if [ $? -ne 0 ] then ...

  3. MaterialCalendarDialog【Material样式的日历对话框】

    版权声明:本文为HaiyuKing原创文章,转载请注明出处! 前言 Material样式的日历对话框 前提条件:Activity界面必须继承FragmentActivity或者其子类(比如AppCom ...

  4. RDIFramework.NET代码生成器全新V3.5版本发布-重大升级

    发布说明 RDIFramework.NET代码生成器V3.5版本全新震撼推出,相比上次版本,本次发布新增与修改的内容如下: 1.全新增加了WinForm界面代码的生成,可直接生成常用的主界面(集新增. ...

  5. C#工具:分词辅助类

    using System; using System.Collections; using System.IO; using System.Text.RegularExpressions; names ...

  6. 封装继承多态(OOP)

    封装:把事物封装成类,私有化属性. 继承:共同的特性封装在父类,子类就有父类的属性 父类已经实现了的方法,子类也有需要前面+New 隐藏父类的方法,就不报错了,有这个语法,面试的时候问过,不推荐用. ...

  7. 39.QT-Qtxlsx库使用

    之前参考博客https://blog.csdn.net/c3060911030/article/details/51560239下载Qtxlsx库,然后编译的时候,显示: error: invalid ...

  8. 简述Servlet的基本概念

    Servlet的基本概念 Servlet的概念 http协议作用于客户端-服务端.由客户端发送请求(Request),服务器端接收到数据之后,向客户端发送响应(Response),这就是请求-响应模式 ...

  9. Linux运维第二课----Linux发展史、环境准备

    一.Linux的发展 1.1969年在贝尔实验室诞生Unix,是开源免费的,之后逐渐转变为收费系统. 2.1986年谭邦宁研发mini Unix,但主要用来教学. 3.斯托曼创建FSF(自由软件基金会 ...

  10. 20190421-那些年使用过的CSS预处理器(CSS Preprocessor)之Sass and Less

    写在前面乱七八糟的前言: emmm,还是决定把Sass与Less单独出来写成一篇,可能会稍微好辣么一丢丢?TAT语法特性是真的香,通篇下来能吸收个10%自我感觉已经很nice了,毕竟渣渣的我有渣渣的自 ...