java基础-01基本概念
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工作方式
编写源代码。列入存为 Party.java
编译器。 执行javac来编译源代码。编译器会检查错误。
如果程序没有错误,编译器产生编译文件Party.class文件。这个编译文件由字节码组成。这个编译文件与平台无关
启动JVM(Java虚拟机),运行Party.calss. JVM将字节码转换为平台能理解的形式来运行。
开发工具
JDK工具
- javac 编译
- java 运行
- jar 打包
https://www.cnblogs.com/wang7/p/10127415.html
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 提供了包机制,用于区别类名的命名空间。
包的作用如下:
- 模块化:把功能相似或相关的类或接口组织在同一个包中,方便类的查找和使用。
- 唯一标识:【包名+类名】在同一个程序中必须是唯一的,避免名字冲突。不同包的类名可以相同,但使用时应该指定包名。
- 权限控制:类名前不加任何权限修饰词时,代表只有这个包的类可以访问这个类。
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语言的主要特点 https://www.cnblogs.com/yxiaooutlook/p/7625362.html
- JAVA语言主要特点有哪些? https://www.cnblogs.com/jay36/p/7762535.html
- Java编程的动态特性, 从Reflection到Runtime Class Transformation https://blog.csdn.net/iteye_12751/article/details/82550531
- Instrumentation 新功能 https://www.ibm.com/developerworks/cn/java/j-lo-jse61/
- Java Instrumentation https://blog.csdn.net/DorMOUSENone/article/details/81781131
- JDK工具一览表 https://blog.csdn.net/qq_27607965/article/details/79982519
- Java学习之专业术语 https://blog.csdn.net/yxys01/article/details/78517459
- Java中的访问控制权限 https://www.cnblogs.com/jingmoxukong/p/5182331.html
- Java 文档注释http://www.runoob.com/java/java-documentation.html
java基础-01基本概念的更多相关文章
- java基础 01
java基础01 1. /** * JDK: (Java Development ToolKit) java开发工具包.JDK是整个java的核心! * 包括了java运行环境 JRE(Java Ru ...
- java基础01
1. /** * JDK: (Java Development ToolKit) java开发工具包.JDK是整个java的核心! * 包括了java运行环境 JRE(Java Runtime Env ...
- 一、Java基础--01
Java基础测试题分析 第一题是关于基本的算法知识,这个很有必要去掌握以下,在学校也经常听老师们说找工作比试面试会出一些这方面的知识,我拿到的第一题是关于排序的,虽然很简单,但是我还是要提醒一下基础不 ...
- Java基础(1) - 语法 & 概念
Java基础语法 基础 1. Java对大小写敏感 2. Java注释 //单行注释 这是一行注释 /* 这里是多行 注释 */ /** 这里是文档注释 @author 0o晓月メ */ 3. 访问修 ...
- java基础-01代理类
简单的代理类实现案例主实现类:ProxyTestimport java.lang.reflect.InvocationHandler;import java.lang.reflect.Proxy;im ...
- Java基础01 ------ 从HelloWorld到面向对象
Java是完全面向对象的语言.Java通过虚拟机的运行机制,实现“跨平台”的理念.我在这里想要呈现一个适合初学者的教程,希望对大家有用. "Hello World!" 先来看一个H ...
- Java基础01 从HelloWorld到面向对象(转载)
Java是完全面向对象的语言.Java通过虚拟机的运行机制,实现“跨平台”的理念. "Hello World!" public class HelloWorld{ publi ...
- java 基础 01 变量和注释、数据类型
1,变量和注释 比如:姓名:xiaoming 年龄:18 1.1变量的基本概念 当需要在程序中记录单个数据内容时,则需要声明一个变量来处理,而变量的本质就是内存中申请一块存储单元用于存储数据内容,由于 ...
- java基础知识-基本概念
1.1 java语言有哪些优点? 1.java语言为纯面向对象的语言. 2.平台无关性.java语言的优点便是“一次编译,到处执行”.编译后的程序不会被平台所约束,因此java语言有很好的移植性. 3 ...
随机推荐
- ASP.NET Core MVC应用程序中的后台工作任务
在应用程序的内存中缓存常见数据(如查找)可以显着提高您的MVC Web应用程序性能和响应时间.当然,这些数据必须定期刷新. 当然你可以使用任何方法来更新数据,例如Redis中就提供了设定缓存对象的生命 ...
- 一个适合.NET Core的代码安全分析工具 - Security Code Scan
本文主要翻译自Security Code Scan的官方Github文档,结合自己的初步使用简单介绍一下这款工具,大家可以结合自己团队的情况参考使用.此外,对.NET Core开发团队来说,可以参考张 ...
- 从B站的代码泄露事件中,我们能学到些什么?
先声明一下,本文不聊ISSUE中的七七八八,也不聊代码是否写的好,更不聊是不是跟蔡徐坤有关之类的吃瓜内容.仅站在技术人的角度,从这次的代码泄露事件,聊聊在代码的安全管理上,通常都需要做哪些事来预防此类 ...
- 【我们一起写框架】MVVM的WPF框架(三)—数据控件
这世上,没人能一次性写出完美无缺的框架:因为,任何一个框架都需要项目的淬炼,然后才能升华,趋近完美. 所以,框架是个反复修改的东西,最终形成的东西. 如果你学了一点技术,觉得自己可以写出框架了,觉得自 ...
- 从官方文档去学习之FreeMarker
一.前言 上一篇 <从现在开始,试着学会用官方文档去学习一个技术框架>提倡大家多去从官方文档学习技术,没有讲到具体的实践,本篇就拿一个案例具体的说一说,就是FreeMarker,选择这个框 ...
- T-SQL 簡易小數處理
今天因應同事提的一則需求,寫了一段 CASE WHEN 的整數與小數處理 過程中居然踩了個雷,特此記錄下來 首先,需求如下: 當內容為整數或零時則去掉尾端的小數否則就顯示原本的小數內容 若內容為 NU ...
- CODING 如何使用 CODING 研发管理系统来敏捷开发
之前我们分享过<CODING 如何使用 CODING 开发 CODING>的文章,时过境迁,现在 CODING 研发管理系统已经上线了如持续集成.缺陷管理.测试管理等 DevOps 中的重 ...
- 【AO笔记】关于创建IFeatureClass中的参考系设置——不能为null也不能为IUnknownCoodinateSystem
创建一个要素类是很简单的,只需要获取一枚IFeatureWorkspace或者一个IFeatureDataset,然后调用其CreateFeatureClass()即可. 这个CreateFeatur ...
- Java的多线程实现生产/消费模式
Java的多线程实现生产/消费模式 在Java的多线程中,我们经常使用某个Java对象的wait(),notify()以及notifyAll() 方法实现多线程的通讯,今天就使用Java的多线程实现生 ...
- java笔记---- 获取外网(公网)的ip地址
import java.io.BufferedReader; import java.io.InputStream; import java.io.InputStreamReader; import ...