目录

  • 前言
  • 一、二进制
    • 1.1 补码
    • 1.2 二进制和十进制之间的互换
  • 二、变量与数据类型
    • 2.1 变量分类
    • 2.2 数据类型
    • 2.3 类型转换
    • 2.4 关键字大全
  • 三、方法的使用
    • 3.1 概述
    • 3.2 权限修饰符详解
    • 3.3 返回值详解
    • 3.4 参数列表详解
    • 3.5 方法实例
  • 四、运算符的使用
    • 4.1 算术运算符
    • 4.2 赋值运算符
    • 4.3 关系运算符
    • 4.4 逻辑运算符
    • 4.5 字符串连接运算符
    • 4.6 三目运算符
  • 五、变量作用域以及转义字符
    • 5.1 变量作用域
    • 5.2 转义字符
  • 结尾(附上一份ASCII表)

前言

Java 语言的主要特性:

  • Java 语言是简单的:
Java 语言的语法与 C 语言和 C++ 语言很接近,使得大多数程序员很容易学习和使用。另一方面,Java 丢弃了 C++ 中很少使用的、很难理解的、令人迷惑的那些特性,如操作符重载、多继承、自动的强制类型转换。特别地,Java 语言不使用指针,而是引用。并提供了自动分配和回收内存空间,使得程序员不必为内存管理而担忧。
  • Java 语言是面向对象的:
Java 语言提供类、接口和继承等面向对象的特性,为了简单起见,只支持类之间的单继承,但支持接口之间的多继承,并支持类与接口之间的实现机制(关键字为 implements)。Java 语言全面支持动态绑定,而 C++语言只对虚函数使用动态绑定。总之,Java语言是一个纯的面向对象程序设计语言。
  • Java 语言是分布式的:
Java 语言支持 Internet 应用的开发,在基本的 Java 应用编程接口中有一个网络应用编程接口(java net),它提供了用于网络应用编程的类库,包括 URL、URLConnection、Socket、ServerSocket 等。Java 的 RMI(远程方法激活)机制也是开发分布式应用的重要手段。
  • Java 语言是健壮的:
Java 的强类型机制、异常处理、垃圾的自动收集等是 Java 程序健壮性的重要保证。对指针的丢弃是 Java 的明智选择。Java 的安全检查机制使得 Java 更具健壮性。
  • Java 语言是安全的:
Java通常被用在网络环境中,为此,Java 提供了一个安全机制以防恶意代码的攻击。除了Java 语言具有的许多安全特性以外,Java 对通过网络下载的类具有一个安全防范机制(类 ClassLoader),如分配不同的名字空间以防替代本地的同名类、字节代码检查,并提供安全管理机制(类 SecurityManager)让 Java 应用设置安全哨兵。
  • Java 语言是体系结构中立的:
Java 程序(后缀为 java 的文件)在 Java 平台上被编译为体系结构中立的字节码格式(后缀为 class 的文件),然后可以在实现这个 Java 平台的任何系统中运行。这种途径适合于异构的网络环境和软件的分发。
  • Java 语言是可移植的:
这种可移植性来源于体系结构中立性,另外,Java 还严格规定了各个基本数据类型的长度。Java 系统本身也具有很强的可移植性,Java 编译器是用 Java 实现的,Java 的运行环境是用 ANSI C 实现的。
  • Java 语言是解释型的:
如前所述,Java 程序在 Java 平台上被编译为字节码格式,然后可以在实现这个 Java 平台的任何系统中运行。在运行时,Java 平台中的 Java 解释器对这些字节码进行解释执行,执行过程中需要的类在联接阶段被载入到运行环境中。
  • Java 语言是高性能的:
与那些解释型的高级脚本语言相比,Java 的确是高性能的。事实上,Java 的运行速度随着 JIT(Just-In-Time)编译器技术的发展越来越接近于 C++。
  • Java 语言是多线程的:
在 Java 语言中,线程是一种特殊的对象,它必须由 Thread 类或其子(孙)类来创建。通常有两种方法来创建线程:其一,使用型构为 Thread(Runnable) 的构造子类将一个实现了 Runnable 接口的对象包装成一个线程,其二,从 Thread 类派生出子类并重写 run 方法,使用该子类创建的对象即为线程。值得注意的是 Thread 类已经实现了 Runnable 接口,因此,任何一个线程均有它的 run 方法,而 run 方法中包含了线程所要运行的代码。线程的活动由一组方法来控制。Java 语言支持多个线程的同时执行,并提供多线程之间的同步机制(关键字为 synchronized)。
  • Java 语言是动态的:
Java 语言的设计目标之一是适应于动态变化的环境。Java 程序需要的类能够动态地被载入到运行环境,也可以通过网络来载入所需要的类。这也有利于软件的升级。另外,Java 中的类有一个运行时刻的表示,能进行运行时刻的类型检查。

一、二进制

  1. 计算机中的数据都以二进制数字保存。
  2. 二进制:逢二进一,即只有0、1两个值。

如:十进制的 10 在计算机内保存为二进制的 1010。

  1. 计算机中信息的存储单位

位(Bit):表示一个二进制数码 0 或 1,是计算机存储处理信息的最基本单位。

字节(Byte):一个字节由 8个位组成。它表示作为一个完整处理单位的 8 个二进制数码。

1.1 补码

事实上,计算机内的二进制数值是以补码形式表示的。

补码:

  • 一个正数的补码和其原码的形式是相同的。
  • 负数的补码是:将该数的绝对值的二进制形式,按位取反再加1。

由此可知,二进制补码数值的最高位(最左位)是符号位:该位为0,表示数值为正数;该位为1,表示数值为负数。

10 00000000 00000000 00000000 00001010
-10 11111111 11111111 11111111 11110110

主要原因:

使用补码,可以将符号位和其它位统一处理;同时,减法也可按加法来处理。另外,两个用补码表示的数相加时,如果最高位(符号位)有进位,则进位被舍弃。

1.2 二进制和十进制之间的互换

二进制数转换成十进制数:

按权相加:把二进制数首先写成加权系数展开式,然后按十进制加法规则求和。

例子:

原码 101101101101101101 === 1×231 \times 2^31×23+0×22+0\times2^2+0×22+1×21+1\times2^1+1×21+1×20+1\times2^0+1×20+0×2−1+0\times2^{-1}+0×2−1+1×2−2=+1\times2^{-2}=\,+1×2−2=8+0+2+1+0+0.258+0+2+1+0+0.25\,8+0+2+1+0+0.25=11.25=11.25=11.25

十进制数转换成二进制数:

  • 整数部分:“除2取余,逆序排列”法
  • 小数部分:“乘2取整,顺序排序”法

注意:编程时若涉及复杂的进制运算可借助计算器中的程序员模式!

二、变量与数据类型

变量就是系统为程序分配的一块内存单元,用来存储各种类型的数据。由于该存储单元中的数据可以发送改变,因此得名为“变量”。

如下图:

因此,通过定义不同类型的变量,可以在内存中储存整数、小数或者字符。

2.1 变量分类

按所属的数据类型划分:

  1. 基本数据类型变量
  2. 引用数据类型变量

按被声明的位置划分:

  1. 局部变量:方法或者语句块内部定义的变量
  2. 成员变量:方法外部、类的内部定义的变量

特别注意:类的外面不能有变量的声明

2.2 数据类型

由于变量记录的数据内容大小不同,导致所需的存储单元大小不同,在 Java 语言中使用数据类型的概念加以描述。

字节是计算机信息技术用于计量存储容量的一种计量单位,作为一个单位来处理的一个二进制数字串,是构成信息的一个小单位。Java 中的字节是八位的字节,即它包含八位的二进制数。

类型 占用内存 值范围(含边界值) 默认值
整数型(int) 4字节 -214783648 ~ 2147483647 0
短整型(short) 2字节 -32768 ~ 32767 0
长整型(long) 8字节 -9223372036854775808L ~ 9223372036854775807L 0
字节型(byte) 1字节 -128 ~ 127 0
浮点型(float) 4字节 -3.40292347E+38 ~ 3.40292347E+38 0.0f
双精度浮点型(double) 8字节 -1.79769313486231570E+308 ~ 1.79769313486231570E+308 0.0d
布尔型(boolean) 1字节 true 或 false false
字符型(char) 2字节 ‘\u0000 ~ u\ffff’ ‘\u0000’

2.3 类型转换

boolean 类型不能转换成任何其它数据类型。

自动类型转换: 容量小的类型自动转换成容量大的数据类型。


byte,short,int 不会互相转换,它们三者在计算时会转换成 int 类型。

强制类型转换:容量大的类型转换成容量小的数据类型时,要加上强制转换符:

long l = 100L;
int i = (int)l;

注意:

有可能造成精度降低或数据溢出,使用时要小心。

2.4 关键字大全

Java 中有一些赋予特定的含义,有专门用途的字符串称为关键字(keyword),全部都为小写。

三、方法的使用

3.1 概述

方法用于封装一段特定的逻辑功能。方法的主要要素有:权限修饰符、方法名、参数列表和返回值。

格式:

权限修饰符 返回值类型声明 方法名称(参数列表){方法中封装的逻辑功能;return 返回值;
}

3.2 权限修饰符详解

3.3 返回值详解

  • 方法调用结束后可以返回一个数据,称之为返回值。
  • 方法在声明时必须指定返回值的类型。
  • 通过 return 语句返回,return 语句的作用在于结束方法且将数据返回。
  • 如果方法没有返回值(即方法不需要返回数据),需将返回值类型声明为 void。

3.4 参数列表详解

  • 方法的参数列表:在调用时传递给方法,需要被方法处理的数据。
  • 在方法定义时,需要声明该方法所需要的参数变量。
  • 在方法调用时,会将实际参数值传递给方法的参数变量。必须保证传递参数的类型和个数符合方法的声明。

3.5 方法实例

//返回较大的数
public static int max(int num1, int num2){return num1 > num2 ? num1 : num2;
}

四、运算符的使用

4.1 算术运算符

++ 运算符:
  • 如果是变量前缀:先对此变量加1,再执行其他的操作。
  • 如果是变量后缀:先执行当前语句的其他操作,再对此变量加1。
-- 运算符:
  • 如果是变量前缀:先对此变量减1,再执行其他的操作。
  • 如果是变量后缀:先执行当前语句的其他操作,再对此变量减1。

实例:

/*** ++和--放在变量前后的区别,注意观察运算结果*/
public class IO_test02 {public static void main(String[] args) {int i = 3;System.out.println(i++);System.out.println(i);System.out.println("-----------------------");int j = 3;System.out.println(++j);System.out.println(j);System.out.println("-----------------------");int k = 3;System.out.println(k--);System.out.println(k);System.out.println("-----------------------");int n = 3;System.out.println(--n);System.out.println(n);}
}

运行结果:

4.2 赋值运算符

赋值运算符作用是将一个值赋值给一个变量,运算顺序从右到左。

4.3 关系运算符

关系运算符作用是比较两边的操作数,结果总是 boolean 型的。

4.4 逻辑运算符

逻辑运算符用于对 boolean 型结果的表达式进行运算,运算结果总是 boolean 型。

4.5 字符串连接运算符

String s = "she "+"is “+“my girl!”,结果为"she is my girl!”

"+"除了可用于字符串相连接,也能将字符串与其它的数据类型相连成一个新的字符串。

如:String s = “你好”+1024;
结果为“你好1024”

实例:

public class IO_test01 {public static void main(String[] args) {String s = "she "+"is "+"my girl!";System.out.println(s);String s1 = "你好"+"1024";System.out.println(s1);}
}

运行结果:

4.6 三目运算符

X?Y:Z

X为 boolean 类型表达式,先计算 x 的值,若为 true,整个三目运算的结果为表达式y的值,否则整个运算结果为表达式 z 的值。

实例:

public class IO_test01 {public static void main(String[] args) {Scanner sc = new Scanner(System.in);int num1 = sc.nextInt();int num2 = sc.nextInt();System.out.println(num1>num2?num1+"大":num2+"大");}
}

运行结果:

五、变量作用域以及转义字符

5.1 变量作用域

在局部变量中,内部范围可以访问外部范围的变量,外部范围不能访问内部范围的变量。

实例1:

public class IO_test02 {public static void main(String[] args) {int a = 2,b = 3;{System.out.println(a+b);}}
}

运行结果:

实例2:

/*** 变量的作用域* 代码分为结构定义语句和功能执行语句,* 功能执行语句必须以英文分号结尾。*/
public class IO_test01 {public static void main(String[] args) {int a = 10;int b = 20;int c = a+b;System.out.println(c);say(c);}private static void say(int d) {System.out.println(d);}
}

运行结果:

5.2 转义字符

实例:

public class T8 {public static void main(String[] args) {System.out.println("乘法口诀表");for(int i=1;i<=9;i++){for (int j=1;j<=i;j++){System.out.print(j+"*"+i+"="+j*i+"\t");}System.out.println();}}
}

运行结果:


结尾(附上一份ASCII表)

Java 编程基础语法篇相关推荐

  1. 多线程编程——基础语法篇

    多线程编程 文章目录 多线程编程 一.Thread 1.1 Thread用法一 1.2.Thread用法二 (Runnable) 1.3.Thread用法三 1.4.Thread用法四 1.5.Thr ...

  2. Java基础编程——基础语法及介绍

    Java基础编程--基础语法及介绍 介绍 Java是由Sun Microsystems公司于1995年5月推出的Java面向对象程序设计语言和Java平台的总称.由James Gosling和同事们共 ...

  3. Java编程基础 - 泛型

    Java编程基础 - 泛型 [导读] . 什么是泛型 一般传统而言,泛型允许程序员在强类型语言中编写代码时使用一些以后才指定的类型,在实例化时作为参数指明这些类型. 编程技术发展至今很多语言,尤其是强 ...

  4. python编程基础语法-Python编程基础语法快速入门

    1. 课程咨询加老师助理微信:助理1微信: chenjinglei88 ,助理2微信: omf6757 2. 决定购买并想得到陈敬雷老师亲自指导(课程或自己项目难题均可)加老师微信: chenjing ...

  5. FPGA笔记之verilog语言(基础语法篇)

    文章目录 FPGA笔记之verilog语言(基础语法篇) 1. verilog 的基础结构 1.1 verilog设计的基本单元--module 1.2 module的使用 1.3 I/O的说明 1. ...

  6. 实验一 Java编程基础

    面向对象--Java实验报告 实验一:Java基础编程 实验一 Java编程基础 <center> <strong>姓名:</strong> <u>XX ...

  7. Java实验01 Java编程基础(猜数字游戏、随机点名器)

    实验一 Java编程基础 实验1-1 随机点名器 一.实验描述 1. 任务描述 编写一个随机点名的程序,使其能够在全班同学中随机点中某一名同学的名字.随机点名器具备3个功能,包括存储全班同学姓名.总览 ...

  8. java编程基础学习需要多久的时间

    Java是当前世界颇为流行的编程语言之一,很多想学习java的人都会听过一句话,先学好java基础,在考虑是自学还是培训学习,同时新的问题出现了,java基础包括什么,需要学习多久呢,对于小白来说,想 ...

  9. 进击 !!第二章 JAVA编程基础

    第二章 JAVA编程基础 目标: 掌握java的基本语法,常量,变量,流程控制语句,方法以及数组 运用java运算符的使用 了解java代码的基本格式 2.1java 的基本语法 1. 代码的基本格式 ...

最新文章

  1. 再论c++模板之类型识别之如何得到类型信息
  2. SDRAM芯片初始化、行有效、列读写时序(高手进阶,终极内存技术指南——完整/进阶版) ——本文为转载...
  3. 【转】互联网公司都有哪些行业
  4. Spring 面试问题 TOP 50,你会哪些?
  5. proto的介绍和基础使用
  6. 游戏编程设计模式——Game Loop
  7. 400 fps!CenterFace+TensorRT部署人脸和关键点检测
  8. 通用方法 Java实现excel表格转成json
  9. 【图论】最优乘车(最短路变形)
  10. CentOS7像外部163邮箱发送邮件
  11. 用HTML+CSS做一个漂亮简单的个人网页(第二篇)
  12. 计算机故障声音,不同的电脑故障声音分别是什么意思【详解】
  13. 分时系统中,当用户数目为100时,为保证响应时间不超过2s,此时的时间片最大应该为
  14. 刚刚,2019年中国信息通信服务交流研讨会盛大召开!
  15. flex布局 flex全解 flex
  16. 【毕业季】青春散场,我们期待下一场的开幕
  17. [转载]: 用PsTools工具执行本地/远程Windows管理任务
  18. 基于PHP实现网上书店的设计与实现
  19. 跨域传值即主页面与iframe之间互相传值
  20. Orbitron 卫星追踪软件

热门文章

  1. java-net-php-python-jspm驴友自助旅游管理系统计算机毕业设计程序
  2. 淘宝/天猫买家信息 API接口
  3. 热点项目|近期Github热门项目Top5
  4. 磁盘及分区详解(MBR和GPT)、新增磁盘分区总体示例
  5. Mathtype / Word OMML / Latex 公式相互转换
  6. 计算机网络面试题(转载,仅供自己学习)
  7. 剑指offer系列-24.反转链表
  8. java常用类-StringBuffer,StringBuilder
  9. Ijk播放视频简单调用
  10. 活在安达信的日子zz