Java 语言基础(一)

  • 前言
  • 一、注释和标识符
    • 1. 注释
    • 2. 字符集
    • 3. 标识符
    • 4. 关键字(略)
  • 二、数据类型
    • 1.基本类型
    • 2.引用类型
  • 三、 常量和变量
    • 1.常量
    • 2.变量
  • 四、操作符
    • 1.赋值运算符
    • 2.算术运算符
    • 3.关系运算符
    • 4.逻辑运算符
    • 5.位运算符
    • 6.三位运算符
    • 7.instanceof运算符
  • 五、流程控制语句
  • 六、数组
    • 1.数组的语法
    • 2.数组的应用
    • 3.数组的复制
    • 4.数组的遍历(foreach)
  • 乒乓球自由落体示例
  • 总结

前言

开始学习Java编程了,本文适合有一定语言基础的友友们,内容基础,可以借鉴学习。(内容整理自燕山大学的学习资料)

一、注释和标识符

1. 注释

Java 语言提供三种类型的注释:
单行注释:以// 开始,以换行符结束。
多行注释:以/* 开始,以*/结束,每行以开始。
文档注释:以/** 开始,以
/ 结束,注释中的每行必须以*开始。采用javadoc命令可以从源代码中将信息取出,生成html格式的说明文档。

2. 字符集

ASCII字符集:美国信息互换标准编码,主要用于显示现代英语和其它西欧语言。
GB2312字符集:中国国家标准的简体中文字符集。
Unicode字符集:支持各种不同语言的书面文本的交换、处理及显示。javac -encoding utf-8 hello.java //编译克服乱码命令行
UTF-8(长度可变)
UTF-16(16位)
UTF-32(32位)

3. 标识符

在Java中标识符的命名规则:
标识符必须以字母或下划线()或 $ 符号开始。其余字符可以是字母、数字、$ 符号和下划线。
标识符只能包含两个特殊字符,即下划线 (
) 和美元符号 ($)。不允许有任何其他特殊字符。
标识符不能包含空格。
区分大小写。
不能使用Java关键字。

4. 关键字(略)

二、数据类型

1.基本类型

(1)基本数据类型的特点

Java 中的基本数据类型的长度是固定的,不依赖于硬件平台,因此具有良好的可移植性。(共8种)
整数类型 (byte、short、int、long)
浮点数类型 (float、double)
字符类型 (char)
布尔类型 (boolean)

Java 中的基本数据类型必须有初始值
成员变量:Java语法规则规定了初始值
局部变量:Java不提供初始值

(2)数据类型的相互转换

2.引用类型


实际在Java中并没有指针,这里只是与C++进行类比学习。

三、 常量和变量

1.常量

常量具有固定的值,在程序的运行中不能更改。
定义标识符为常量的关键字是final(相当于C++中的const,将变量定义为只读)
如: final double PI = 3.1416;

2.变量

名称 : 标识符
类型:确定内存分配空间,基本类型或复合类型
初始值:为其赋值或者是保留缺省值
作用域:在不同程序块中的可用性及生命周期
如:int a = 1;
int 是整型类型;a是变量名;
=是赋值运算符;1是变量的初始值。

根据作用域范围可以将变量分为成员变量和局部变量。
成员变量:定义在类内,方法外,在整个类内有效,有默认初始值
局部变量:定义在方法内或者程序块内,作用范围有限,使用前必须赋初值

四、操作符

1.赋值运算符

赋值运算符左侧必须是变量。
一次可以为多个变量赋值。
示例:a=b=c=5;

2.算术运算符

3.关系运算符

返回值为boolean,true或者false

4.逻辑运算符

& 、 | 运算与 && 、|| 运算是否相同?
A&B(A|B) 需要先判断A的布尔值,再判断B的布尔值,最后再进行逻辑运算。
A&&B 先判断A的布尔值,当A为False时不再判断B的布尔值(将B短路),即A&&B的结果返回False。
A||B 先判断A的布尔值,当A为True时不再判断B的布尔值(将B短路),即A||B的结果返回True。

5.位运算符

Java的整型数据在内存中采用补码表示数字,补码的规定如下:
最高位为符号位,正数为0,负数为1。
对负数而言,其补码为其绝对值的反加1。

6.三位运算符

可以代替某些 if … else 语句

示例
int a = 10;
int b=20;
int c=(a>b)?1:-1;

7.instanceof运算符

用于判断一个对象是否为某个类的实例,返回true 或者false。

示例:
A a=new A();
B b=new B();
boolean x=a instanceof B;

五、流程控制语句

1、分支语句
if-else
switch


2、循环语句
while
do-while
for

3、转移语句
break
continue
return

break:
break 语句在循环中用于立即从当前循环终止控制。
遇到 break 语句时,将跳出当前循环。
continue:
continue 语句则是从其调用处跳至循环的开始处。
continue 语句之后的语句将不再执行。
return:
通常用在方法中,以便结束一个方法,有以下两种使用格式:
单独一个return关键字,则不返回任何值。
return关键字后面跟变量、常量或表达式。

public class ReturnDemo{public static void main(String[] args){for(int i=0;i<4;i++){System.out.println(“i的值是”+i);if(i == 2){return;//返回,结束main方法}System.out.println(“return后的输出语句”);}}
}

六、数组

1.数组的语法

数组的声明主要是定义数组的名称及数组元素的数据类型,包含两种声明语句:
   type arrayName[ ];
   type[ ] arrayName;

其中,type为元素类型,arrayName为数组名称。
声明数组时不定义数组大小。

分配空间:

Java不支持变长数组,数组的大小一旦确定,就不可以改变。
数组采用new分配空间,其的语法为:    type arrayName[]=new type[n];
示例:   int a[]=new int[10];
为数组分配空间时,如果数组元素类型为基本类型,则自动对数组元素进行初始化。其值为此种类型的默认值。如:int默认为0,double默认为0.0。
对于基本数据类型的数组,可以不使用new创建(动态初始化),而采用直接给数组元素初值来实现,元素初值之间用逗号分隔(静态初始化)。
示例:int a[ ]={0,1,2,3,4};

2.数组的应用

数组元素可以通过数组名和下标进行访问。下标的下界为0。
数组具有属性length,可以通过此属性得到数组的长度。
Java自动检查数组下标是否越界,如果下标小于0或大于等于length,则会发生错误,产生一个名为ArrayIndexOutOfBoundsException的异常。

示例:对一个int数组内的元素进行排序

 int a[]={1,4,2,5,8,0};int max=0;int pos=0;for(int i=0;i<a.length;i++){max=a[i];pos=i;for(int j=i;j<a.length;j++){if(a[j]>max) pos=j;}if(pos!=i){max=a[pos];a[pos]=a[i];a[i]=max;}}

3.数组的复制

方法一:可以通过循环实现数组元素的复制。

int a[]=new int[10];
int b[]=new int[a.length];
for(int i=0;i<a.length;i++)
{b[i]=a[i];
}

方法二:System类提供了arraycopy函数,可以实现数组的复制。函数原形为:

void arraycopy(Object src,int srcPos,Object dest,int destPos,int length);

示例:

 int a[]=new int[20];int b[]=new int[10];System.arraycopy(b,0,a,10,b.length);

4.数组的遍历(foreach)

使用foreach循环遍历数组和集合元素时,无需获得数组和集合长度,也无需根据索引来访问数组元素和集合元素,foreach循环自动遍历数组和集合的每个元素。
语法: for(数据类型 变量名: 数组名)

public class ForeachDemo {public static void main(String[] args){int[] a = {5,7,20}System.out.println(“数组a中的元素是:”);for(int e:a){System.out.println(e);}}
}

等价于:

for(int int i=0;i<a.length;i++){System.out.println(a[i]);}

乒乓球自由落体示例

问题:一乒乓球从高度为h处自由下落 (忽略空气阻力),求在t时刻该球的高度。

import java.io.*;
import java.util.*;
public class Height{double changeHeight(double h,double t){double He=10;final double g=9.8;He=g*t*t/2.0;h=h-He;return h;} public static void main(String args[]){Height m=new Height();System.out.println("请输入当前高度:");Scanner s = new Scanner(System.in);double h=s.nextDouble();System.out.println("请输入经过时间:");double t=s.nextDouble();System.out.println("当前高度为:");System.out.println(m.changeHeight(h,t));System.out.println("米(m)\n");}
}

总结

Java学习的基础部分就到这里了,其实有许多方面都与C++有共通之处,但是又有细微的变化。一起努力吧,要相信越努力越幸运丫!

Java 学习(一)Java语言基础相关推荐

  1. Java学习之JavaSE-Java语言基础

    第一章:初识计算机和Java语言 一.计算机的体系结构 (一)计算机的基本概念 计算机(Computer)俗称电脑,是现代一种用于高级计算,使用非常广泛的设备,主要由计算机硬件和计算机软件两个部分组成 ...

  2. java开发环境及数据类型实验_实验项目1 Java开发环境与语言基础

    <实验项目1 Java开发环境与语言基础>由会员分享,可在线阅读,更多相关<实验项目1 Java开发环境与语言基础(14页珍藏版)>请在人人文库网上搜索. 1.实验项目1 Ja ...

  3. java学习笔记:零基础java学习路线+配套资料+书籍推荐

    公众号菜鸟名企梦2018年,精品文章汇总: 01 我的秋招 我的秋招offer 我的offer选择 秋招全面总结-必读宝典 求职必读 02 零基础学习路线 零基础-java学习路线(上) 零基础-ja ...

  4. invader的java学习第三天基础篇

    invader的java学习第三天基础篇 一.整数的取值范围表 类型名称 数据类型 所占空间 表数范围 字节型 byte 1字节 -128-127 短整型 short 2字节 +-3w(-2^15-2 ...

  5. invader的java学习第五天基础篇

    invader的java学习第五天基础篇(持续更新中-) 一.位运算符 ^.&.|.~.>>.<<.>>>,位运算符就是基于二进制直接进行运算(0为f ...

  6. invader的java学习第四天基础篇

    invader的java学习第四天基础篇(持续更新中-) 一.类型转换 自动转换(数值之间在进行四则运算时,数据类型会自动向大类型靠拢) byte num=10; short a=num; Syste ...

  7. Java学习资源 | Java编程最新教学视频大全,推荐

    Java资源合集(视频版) 入门 进阶 高级 样样俱全 学习资源很多,学习方法也很多 适合自己才是最好的 可以试听一下,选择最适合的 加油! 众说周知 B站是一个强大的学习网站 视频 韩顺平零基础30 ...

  8. Java学习:Java就业前景

    Java学习:Java就业前景 在2019年的互联网行业中,中高级Java程序员加速批量加入了求职市场,在薪资波动的同时,初级Java程序员的求职生存空间被严重挤压.而各个大厂的裁员,流入求职市场大量 ...

  9. 深圳Java学习:Java中的原子操作

    深圳Java学习:Java中的原子操作 来到千锋学习Java已经有一段时间了,由当初的懵逼状态逐渐好转,也逐渐养成了写技术学习笔记的习惯,今天总结了一下Java中的原子操作. 1.Java中的原子操作 ...

  10. 狂神说Java学习笔记 Java基础

    目录 机器语言 第二代语言(汇编语言) 第三代语言 高级语言 Java特性和优势 JDK(Java Development Kit) JRE(Java Runtime Enviroment) JVM( ...

最新文章

  1. [AWDwR4] Iteration F4
  2. 第二十六讲 有特殊特征值的微分方程组
  3. 计算机教育应用3t模式,[信息技术教育应用作业.doc
  4. Python 基础篇:介绍
  5. Magic Powder - 2
  6. JavaScript从入门到放弃 -(四)E5 新增方法
  7. php调用airtestide,raw device
  8. let 作用域问题, 全局变量不能this引用
  9. openssl生成证书
  10. JDBC是什么?和JDBC程序的基本编写
  11. 网站改版进行时,需要注意的
  12. 拷贝一个用户下的所有表和数据到另外一个库
  13. Linkage 使用方法总结
  14. win7打不开桌面计算机,win7电脑中梦幻桌面打不开如何解决
  15. vivo NEX的Usb调试模式在哪里,打开vivo NEXUsb调试模式的教程
  16. 电容之超级电容简易测试方法
  17. Identifying Antioxidant Proteins by Using Optimal Dipeptide Compositions论文笔记
  18. Pandas合并excel文件错位现象的解决
  19. 默哀这一刻 我们的心紧紧相连
  20. Git巧用贮藏避免解决冲突时的合并记录

热门文章

  1. linux和ios哪个效率高,8月iOS最强设备性能排行榜
  2. xshell命令卡死
  3. 【深度学习论文翻译】应用于语义分割问题的深度学习技术综述01
  4. C语言学习笔记--前言
  5. 树莓派上手--raspbian输入键盘设置
  6. 自制sonicwall串口线
  7. yoga1976_Yoga Studios的21个最佳WordPress主题(2020)
  8. 几种混合模式移动应用开发框架的对比
  9. activiti常见问题-系统部署时数据库空异常
  10. egg.js ajax上传文件,egg.js 通过 form 和 ajax 两种方式上传文件并自定义目录和文件名...