Java学习笔记一(基础知识)

1  java基本概念

JDK  java  develop Kit   Java开发环境,三种版本J2SE(主要用与桌面和小程序的开发)、J2EE(主要用户企业级的开发)、J2ME(主要用于手持设备的开发)

Jre  Java run environment Java运行环境,

2 java的基本特点

  1)简单:java的编程风格类似C++、除去C++中容易产生错误指针,结构,枚举等、封装了很多类库。

  2)面向对象的:完全面向对象的,支持继承、重载、多态等机制

  3)健壮性:检查程序在编译或者运行时候的错误、强类型的语言、提供垃圾内存回收机制,避免内存泄露问题。

  4)安全性:删除了指针和内存管理,避免内存泄露、java安全架构能够来确保java的操作是安全的。

  5)解释性:java是解释执行的,由编译器把java源程序编译成字节码后,有java的解释器执行。

  6)与平台无关性:java源程序编程成语平台无关的字节码,有解释器来解释执行。字节码是在JVM上运行的。

  7)多线程的:在语言级支持多线程编程;

  8)动态性:面向对象的扩展,允许程序在运行过程中动态的添加所需要的类。java编译器把符号信息在字节码中保存下来,传递给解释器,再有解释器

        完成动态链接类后,将符号引用信息转化为数值偏移量。

3 java 跨平台的原理

  java的跨平台通过JVM来实现的。java程序的开发周期:编译->下载->解释->执行。

  java编译器将java源程序编译为字节码,java编译器不将对变量和方法的引用编译为数值引用,也不确定内存的布局,只是将符号引用信息保留在字节码中,由解释器在运行过程中确定内存布局,然后通过查表的方法来确定一个方法所在的位置。

  java解释器:解释执行字节码,解释执行的过程:代码的载入->代码的检验->代码的运行;代码的装入是由类装载器来执行,字节码校验器检查可发现字节码溢出,非法类型转化等错误;执行;

4 字节码的两种执行方式

  即时编译方式和解释执行方式;

5 简单java实例

 public class HelloWord
{
    public static void main(String [] args)
    {
        System.out.println("hell word!!!!!!!!");
    }

}

class Welcome
{

}

保存为HelloWorld.java;一个源文件中包含多个类的时候,文件名必须命名和public类名字相同。一个源文件中至多有一个public的类。

java源文件的注释方法:1)和c语言相同的注释方式。/*---------------*/      、 //

           2) java 特有的注释方法    /**---------------*/  可以自动生成注释文档

编译:javac HelloWorld.java   编译的时候每一个类会变成一个.class的字节码;如果源码中的类太多,则需要把多个类打包成jar文件;

   jar cvf  Hello.class  HelloWorld.class  Welcome.class

运行 :java HelloWorld

时间: 2024-12-18 13:57:51

Java学习笔记一(基础知识)的相关文章

C#学习笔记(基础知识回顾)之值类型与引用类型转换(装箱和拆箱)

一:值类型和引用类型的含义参考前一篇文章 C#学习笔记(基础知识回顾)之值类型和引用类型 1.1,C#数据类型分为在栈上分配内存的值类型和在托管堆上分配内存的引用类型.如果int只不过是栈上的一个4字节的值,该如何在它上面调用方法? 二:值类型转换为引用类型--装箱 2.1CLR对值类型进行装箱时:新分配托管堆内存,将值类型的实例字段拷贝到新分配的内存中,返回托管堆中新分配对象的地址.这个地址就是一个指向对象的引用. int i = 10; Object obj = i; 三:将引用类型转换为值

[Golong]学习笔记(一) 基础知识

Go编程基础 Go的内置关键字(25个) 不多 break default func interface select case defer go map struct chan else goto package switch const fallthrough if range type continute for import return var Go的注释方法(和js一样) 单行注释: // 多行注释: /**/ Go程序一般结构 common_structure.go 通过 pack

Scala学习笔记--正则表达式基础知识、如何在scala内使用

正则表达式语法:https://msdn.microsoft.com/zh-cn/library/ae5bf541(VS.80).aspx 基础知识:正则表达式30分钟入门教程 http://www.jb51.net/tools/zhengze.html  版本:v2.33 (2013-1-10) 作者:deerchao 转载请注明来源 使用格式:  见java API  http://docs.oracle.com/javase/7/docs/api/ java : java.util.reg

.net学习笔记---xml基础知识

一.XML简介 XML是一种标记语言,用于描述数据,它提供一种标准化的方式来来表示文本数据.XML文档以.xml为后缀.需要彻底注意的是XML是区分大小写的. 先从一个简单的XML例子来了解下xml基础: <?xml version="1.0" encoding="utf-8" ?> <books ISBN="9787544238212"> <title>xml学习笔记</title> <pr

C#学习笔记(基础知识回顾)之枚举

一:枚举的含义 枚举是用户定义的整数类型.在声明一个枚举时,要指定该枚举的示例可以包含的一组可接受的值.还可以给值指定易于记忆的名称.个人理解就是为一组整数值赋予意义. 二:枚举的优势 2.1:枚举可以使代码更易于维护,有助于确保给变量指定合法的.期望的值. 2.2:枚举可以使代码清晰,用描述性的名称来表示整数值,增加代码可读性. 三:枚举的使用 /// <summary> /// 声明一个枚举,审核状态 /// </summary> public enum AduitStatus

[算法学习笔记]算法基础知识

算法基础知识 算法的五大要素 有穷性:算法必须能够在有限个步骤内完成. 确定性:算法的每一步必须有确定的定义. 输入 输出 可行性:算法的每个步骤都必须能分解为基本的可执行操作,每个步骤都必须能在有限时间内完成 循环不变式 循环中的循环不变式可以帮助我们理解算法的正确性.为了证明算法的正确,必须证明循环不变式的三个性质: 1. 初始化:循环不变式在循环开始之前是正确的. 2. 保持:循环不变式在循环的每一次迭代开始之前是正确的. 3. 终止:在循环结束时,不变式会给出一个可以对判断算法是否正确有

《汇编语言》学习笔记1——基础知识

第一章   基础知识 汇编语言的组成 汇编指令:机器码的助记符,有对应的机器码(汇编语言的核心) 伪指令:没有对应的机器码,由编译器执行,计算机并不执行 其他符号:如:+.-.*./等,由编译器识别,没有对应的机器码 指令和数据都是应用上的概念,在内存或磁盘上指令和数据都是二进制信息. 存储器被划分为若干个存储单元,每个存储单元从0开始. 一个存储器有128个存储单元,一个存储单元存储一个字节,一个字节有8个二进制位. 内存换算: 1bit=8byte(B).1KB=1024B.1MB=1024

java并发编程实战学习笔记之基础知识与对象的共享

第二章:线程安全性 2.1 什么是线程安全性 可以被多个线程调用,并且在线程之间不会出现错误的交互 方法内的局部变量不需要保护,因为它存储在栈中,是每个线程独有的 2.2 原子性 一个共享变量可以定义为原子变量:atomic 多个共享变量时,之间可能存在某种依赖关系,分别定义为原子变量会由于竞态条件,出现错误,比如先检查后执行. 竞态条件:某个计算的正确性取决于多个线程的交替执行时序时 这就需要复合操作,将多个变量的读写操作作为一个程序块,接下来采用 2.3 加锁机制 将一个复合程序块采用内置锁

Spring学习笔记01_基础知识

1.Spring体系结构? 主要分为5大模块: (1)数据访问和集成:JDBC.ORM.OXM.JMS.事务管理. Spring站在DAO的抽象层面,建立了一套面向DAO层统一的异常体系,同时将各种访问数据的检查异常型异常转换为非检查异常,为整合各种之久层框架提供给了基础. 其次,Spring通过模板化技术对各种数据库访问技术进行了薄层的封装,将模式化的代码隐藏起来,简化了数据库访问的代码. 这样,Spring就建立了和数据形式访问技术无关的统一的DAO层,借助AOP技术,Spring提供了声明

Object-C学习笔记之基础知识一

Object-C 是C的衍生语言,继承了所有C语言的特性,但是Object-C并不是继承自C语言特性本身. 首先我们先通过例子来说明Object-C中的一些基本语法: #import <Foundation/Foundation.h> @interface Print: NSObject{    //Objective-c的所有类都继承于NSObject      // 成员属性     NSString * caption;     NSString * photographer; } //