一、Java语言简介

JAVA是一种面向对象的程序设计语言,为不同级别的开发划分为J2SE、J2EE(Java Web)、J2WE三种平台,可以进行桌面应用编程、WEB客户端编程、WEB服务器编程、手机编程(J2ME或者现在的Android系统上开发应用程序)、机器人编程等。

1、Java语言的发展

计算机语言向着功能更加强大、人更易使用的方向发展。编程语言的发展时期可以划分为机器语言、汇编语言(符号语言)、面向过程、面向对象以及SQL语言。      

JAVA的前身是有SUN公司的James Gosling负责的Green项目,目的是打造一个分布式的、可以在各种消费类电子产品(如电视机顶盒、微波炉)使用的系统架构,这就要求编程语言要具有中立性、跨平台性,但很遗憾消费类电子产品并没有高速的发展起来。

随着互联网爆发式的发展,人们急需一种具有跨平台特性的语言在各种平台上运行,而SUN此时发布的JDK1.2正符合这种需求。使用JAVA编写的applet程序给了90年代的人们极大的震撼,于是JAVA迎来了他的黄金时代!

  

2、Java语言的特性

(1)简单性、安全性

JAVA属于类C语言,但去除了C/C++的中关于头文件、指针、结构、联合、操作符重载、虚基类等操作,不仅简化了语法,还提高了JAVA语言的安全性,使Java适合于网络/分布式环境开发,并可以构建防病毒,防篡改的系统。

(2)可移植性强【核心特性】

JAVA语言具有很强的跨平台特性,可以运行于不同的操作系统上,实现“一次编译、处处执行”。如:JAVA的int类型永远都是4B,不像C/C++可能是4B或2B(具体是由编译器厂商规定)。

(3)健壮性

Java是一种健壮的语言,吸收了C/C++ 语言的优点,去掉了其影响程序健壮性的部分(如:指针、内存的申请与释放等)保证每次对内存的访问都是合法的。此外,还使用异常机制对例外进行处理。

(4)运行效率高

JIT(JUST IN TIME)即时编译,可以将一些“热点”字节码编译成本地机器码,并将结果缓存起来,在需要的时候重新调用。这样可以将JAVA程序的执行效率大大提高,某些代码的执行效率甚至可以接近C++的执行效率(编译代码)。

(5)分布式

JAVA是为Internet的分布式环境设计的,因为他能够处理TCP/IP协议。事实上,通过URL访问一个网络资源和访问本地文件是一样简单的。Java还支持远程方法调用(RMI,remote method Invocation),使程序能够通过网络调用方法。

(6)动态性

动态性是一个非常重要的特性,反射机制可以在需要时将某些代码添加到正在运行的程序中。Java的动态特性是其面向对象设计方法的扩展。它允许程序动态地装入运行过程中所需要的类,这是C++语言进行面向对象程序设计所无法实现的

(7)多线程

多线程的使用可以带来更好的交互响应和实时行为。多线程的简单性是Java成为主流服务器端开发语言的主要原因之一。

3、JDK与IDE

(1)JDK与JRE

JDK(JAVA Development Kit)不仅包含java运行时环境JRE(JAVA Runtime Environment)的超集,还为开发者还提供了javac、java、javadoc、jar等编译器及其他一些开发工具。

Java Runtime Environment (JRE) 包含执行字节码文件的JVM(JAVA Virtual Machine)、库函数、运行Java应用程序和Applet所必须文件。java运行环境具有加载代码(class loader)、校验代码(bytecode verifier )和 执行代码(runtime interpreter)等功能。

(2)配置环境变量   

配置系统环境变量Path:执行dos命令时,系统会在path(静态+临时)指定的路径中寻找该命令的执行文件。需要在最前面追加【.;% JAVA_HOME %\bin;】。其中:JAVA_HOME是jdk安装目录;分号用于将多个目录分开,目录值中不能加分号;点号表示当前目录。

配置CLASSPATH路径:如果使用jdk1.5以上就不需要配置这个环境变量!JRE会自动搜索当前路径下的类文件及相关jar文件。

运行cmd输入命令【java  –version】,若出现如下结果,则通过表明JDK安装成功。

(3)IDE开发环境


注:eclipse快捷键:① sysout + (alt +/)输出System.out.println()

4、JVM虚拟机

JAVA的跨平台实现的核心是为不同的操作系统提供不同的JVM。JVM屏蔽了底层运行平台的差别,为上层提供了统一的字节码(byte-code代码是与平台无关的是虚拟机的机器指令)执行环境,实现了“一次编译,随处运行”。

JVM(JAVA Virtual Machine)一种规范,是指在一台计算机上由软件或硬件模拟的用于虚拟执行字节码文件的计算机,类似一个小巧而高效的CPU。定义了指令集、寄存器集、结构栈、垃圾收集堆、内存区域等。IBM、SUN、BEA、Intel等都有为不同的操作系统提供不同的JVM或java芯片(正在研发),甚至自己也可以根据JVM规范编写一个JVM。

JVM负责将java字节码Interpreter(解释)运行,边解释边运行,这样速度就会受到一定的影响。JAVA提供了另一种解释运行的方法JIT(just in time,即时编译),就是由代码生成器将“热点’”字节码一次性解释转换成可以较高速度的运行在特定平台上的本地机器码,并将结果缓存起来,下次直接从内存中调,这样就大大提高了执行JAVA代码的效率。这样就实现了跨平台、可移植的功能。

二、运算符与表达式

1、基本字符集

最早的字符集是ISO8859-1(1字节)用于表示西欧字符集,随着计算机的发展,台湾使用BIG5(大五码)表示繁体汉字;大陆使用GB2312简体中文字符集,GBK是GB2312的扩展,可以表示繁体中文,GB18030是最新的GBK扩展,可以表示汉字‘维吾尔文、藏文等。  

Unicode(2字节)是国际通用的字符集,可以表示各国所有常用的字符。UTF-8是变长字符串,存储时仍采用2B,但在网络数据传输时,对于西欧字符占1B,汉字占2B;UTF-16目前未出。

JAVA采用的时Unicode字符集(而非通常的ASCII字符集)。

2、关键字

JAVA关键字又称保留字,是JAVA语言内部保留使用的标识符,如:class


3、标识符

JAVA标识符以 下划线 和 美元符 $开头,由下划线、美元符$、数字组成。JAVA标识符大小写敏感、长度无限制,但不可以与关键字相同。建议在命名标识符的时,采用 “见名知意’‘和“驼峰原则”、不使用汉字定义标识符。

  1 int   1a;        //不能以数字卡头
2 int a#; //不能含有特非法字符
3 int class; // 不能使用关键字命名
4 int 变量; //正确,但不建议使用汉字定义标识符
5

注释符:单行注释符://   多行注释符:/* */     javadoc:/** */

4、运算符

(1)除法运算符

(2)取余运算符

(3)自增运算符

(4)比较运算符

(5)逻辑运算符

(6)复合运算符

(7)运算符的优先级


三、基本数据类型


1、整型类型

不含小数点的数值称为整型常数,默认使用int类型存储,有以下四种表示形式:

十进制数,如:100、45、0

八进制数,要求以数字0开头,如:025

十六进制数,要求以0x或0X开头,如:0X2A

二进制数:要求以0b开头,如:0b101


注:若数值超出以上类型的表示范围,建议使用BigInteger存储数据

2、浮点类型

含有小数点的数值称为浮点数,如:2.0、2. 等 。默认使用double类型存储。

(1)使用浮点数存储数据存在着舍入误差

很多浮点数不能精确地表示,如果需要进行不产生舍入误差的精确数字计算,需要使用BigDecimal类。

  1 float f = 0.1f;        //0.1默认是double,要赋予float类型需进行强制类型转换
2 double d = 7. / 6 //会自动四舍五入,产生误差

(2)比较浮点数大小

3、字符类型

4、布尔类型

5、类型声明与定义

JAVA是一种强类型的语言,每一个变量必须声明其类型。

(1)定义long类型常量

JAVA语言整型常数默认为int类型。对于超出int可以表示范围的数,可以使用 l 或 L (建议使用大写)声明l为long型常量

  1 long a = 55; //正确,int表示的范围是21亿内
2 long b = 22_2222_2222; //error,已经超过int的存储范围,需要在后面加上 L 将整型常数定义为long类型

6、数据类型转换

byte a = 256; // error,赋值的数值不可超出类型的表示范围的

四、流程控制语句

1、main入口

  1  public class Main {
2 public static void main(String[] args) {
3 System.out.println("HelloWord");
4 }
5 }

注:① main方法是java程序的入口,具有固定的书写格式。

② java语句可以跨行编写,但每个语句都必须以分号结束。编辑器会忽略空格、换行符和注释。

③ 花括号{ }划分程序的各个部分,任何方法的代码都必须以 { 开始,以 } 结束。

④ 一个类对应一个字节码文件; public修饰的类必须与文件名保持一致    

2、条件选择语句

3、循环语句

4、跳转语句

5、函数与参数

Java笔记 - 基础语法简介的更多相关文章

  1. 《Java笔记——基础语法》

    Java笔记--基础语法       一.字符串的拼接: 例如: System.out.println(""+"");     二.换行语句: 例如: Syst ...

  2. 学习java之基础语法(三)

    学习java之基础语法(三) java运算符 计算机的最基本用途之一就是执行数学运算,作为一门计算机语言,Java也提供了一套丰富的运算符来操纵变量.我们可以把运算符分成以下几组: 算术运算符 关系运 ...

  3. 学习java之基础语法(一)

    学习java之基础语法(一) 基本语法 编写 Java 程序时,应注意以下几点: 大小写敏感:Java 是大小写敏感的,这就意味着标识符 Hello 与 hello 是不同的. 类名:对于所有的类来说 ...

  4. 《Java笔记——基础知识点》

    Java笔记--基础知识点       位运算符操作的都是整型的数据. 位运算符是直接对整数的二进制进行计算. 整数不能进行逻辑运算. 运算符优先级别由高到低分别是:() > ! > 算术 ...

  5. Day03.2:Java的基础语法

    Java基础语法 注释 (注释不会被运行,仅仅作为解释或笔记提供给作者帮助回忆) 单行注释格式:// 多行注释格式: /**/ 文档注释格式:/** */ 示例图 标识符 概念:所有的组成部分都需要名 ...

  6. java的基础语法(标识符 修饰符 关键字)

    Java 基础语法 一个 Java 程序可以认为是一系列对象的集合,而这些对象通过调用彼此的方法来协同工作.下面简要介绍下类.对象.方法和实例变量的概念. 对象:对象是类的一个实例,有状态和行为.例如 ...

  7. 跨行程序员Java进阶--基础语法

    1.基础语法 Hello Wolrd 首先定义类 -- public class 类名 在类定义之后加上一对大括号 -- {} 在大括号中间添加一个主(main)方法/函数 -- public sta ...

  8. 动静结合?Ruby 和 Java 的基础语法比较(入门篇)

    前言 这篇文章示例代码比较多, Java 程序员可以看到一些 Ruby 相关语法和使用,Ruby 程序员可以看看 Java 的基本语法和使用方法,本文比较长,将近万字左右,预计需要十几分钟,如果有耐心 ...

  9. JavaScript学习笔记-基础语法、类型、变量

    基础语法.类型.变量   非数字值的判断方法:(因为Infinity和NaN他们不等于任何值,包括自身) 1.用x != x ,当x为NaN时才返回true; 2.用isNaN(x) ,当x为NaN或 ...

随机推荐

  1. Git仓库操作命令

    创建仓库 git init 在当前目录执行,会生成.git目录文件,这个和SVN一致. 提交到仓库 git commit -m "first commit" -m:表示提交描述,必 ...

  2. JavaScript学习总结(七)——ECMAScript6(ES6)

    一.ECMAScript概要 ECMAScript是一种由Ecma国际(前身为欧洲计算机制造商协会,英文名称是European Computer Manufacturers Association)通 ...

  3. 21-5-split

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  4. myeclipse问题

    eclipse使用过程中发现汉字太小,几乎不可辨识. 更改办法:eclipse界面依次选择“window”–“preference”–“general”–“appearance”–“color and ...

  5. split的用法

    split用法返回的是数组 使用split('')根据空格返回数组 使用split()返回一个完整的数组 使用split("",3)返回前三项,是单个的字母 不过要注意: 使用sp ...

  6. 家庭-养老院模型理解IOC和DI

    控制反转 IOC 1. 概念 应用内部不负责依赖对象的创建和维护, 由第三方负责, 这样控制权就由应用内部转移到外部容器, 控制权的转移就是所谓的反转. 2. 比喻 有一户家庭(应用)有个老人(依赖对 ...

  7. mui--使用mui中的图文表格组件时出现一条横线的解决方法

    最近做的微信公众号点击链接跳转到H5页面,该H5页面使用mui做的,遇到的商品列表页出现一个横线的问题, 这个是修改前的图片 解决方法: <style type="text/css&q ...

  8. Eclipse注释快捷键、如何生成API以及可能遇到的问题解决

    1.Java注释方式单行注释// 快捷键:ctrl+/多行注释/* 快捷键:shift+ctrl+/*/文档注释/** 快捷键:shift+Alt+j */ 2.生成API文档 打开index.htm ...

  9. thinkphp 系统流程

    用户URL请求 调用应用入口文件(通常是网站的index.php) 载入框架入口文件(ThinkPHP.php) 记录初始运行时间和内存开销 系统常量判断及定义 载入框架引导类(Think\Think ...

  10. Map按键排序(sort by key)

    1.需求:已知有如下map,要求按照key倒序排列遍历. Map<String, Integer> map = new HashMap<>(); map.put("1 ...