Java语言的特点

  1. 简单的面向对象语言
  2. 跨平台与解释执行
    可以做到一次编译,到处执行。
    Java跨平台,Java虚拟机不跨平台
    在具体的机器运行环境中,由Java虚拟机对字节码进行解释执行。通过定义独立于平台的基本数据类型及运算,Java数据得以在任何硬件平台上保持一致。(解释执行无疑在效率上要比直接执行机器码低,所以Java的运行速度比C++要慢些。)
  3. 健壮和安全的语言
    Java不支持指针,从而防止了对内存的非法访问。
  4. 支持多线程
    Java的自动垃圾回收就是以线程方式在后台运作
    Java自动回收内存:轮询机制(查岗)
    Java垃圾回收器(GC Garbage Collection)
  5. 面向网络的语言
  6. 动态性
    在运行时所有的Java类是动态装载的

Java基础语法

  1. 大小写敏感
  2. 类名首字母大写,驼峰命名法。如果类名由若干单词组成,那么每个单词的首字母应该大写,例如 MyFirstJavaClass 。
  3. 方法名以小写字母开头。如果有若干单词,后面每个单词首字母大写。
  4. 源文件名必须和类名相同。
  5. 所有Java程序由 public static void main(String []args) 方法开始执行。

Java关键字

······························································
访问控制
private 私有的
protected 受保护的
public 公共的
default 默认
······························································
类、方法和变量修饰符
abstract 声明抽象
class 类
extends 扩充,继承
final 最终值,不可改变的
implements 实现(接口)
interface 接口
native 本地,原生方法(非 Java 实现)
new 新,创建
static 静态
strictfp 严格,精准
synchronized 线程,同步
transient 短暂
volatile 易失
·······························································
程序控制语句
break 跳出循环 在Java中可以跳到标签处(outer)
continue 继续 同上
case 定义一个值以供 switch 选择
default 默认
do 运行
else 否则
for 循环
if 如果
instanceof 实例
return 返回
switch 根据值选择执行
while 循环
·································································
错误处理
assert 断言表达式是否为真
catch 捕捉异常
finally 有没有异常都执行
throw 抛出一个异常对象
throws 声明一个异常可能被抛出
try 捕获异常
···································································
包相关
import 引入
package 包
····································································
基本类型
boolean 布尔型
byte 字节型
char 字符型
double 双精度浮点
float 单精度浮点
int 整型
long 长整型
short 短整型
········································································
变量引用
super 父类,超类
this 本类
void 无返回值
·····································································
保留关键字
goto 是关键字,但不能使用
const 是关键字,但不能使用
null 空
·······································································
复制自:菜鸟教程

Java对象和类

  • 类定义包括类声明类体,语法格式为:
    [修饰符] class 类名 [extend 父类名 ] [implements 接口列表]
    {
    //类体
    }
    说明:

    • 类定义中带括号的内容为可选部分。
    • 修饰符有访问控制修饰符和类型修饰(abstract、final)。
    • extends 引导该类要继承的父类。
    • implements 引导该类要继承的父类。
  • 创建类后可用 “new+构造方法” 来创建类的对象。具体格式如下:
    <类型> 引用变量名=new <类型>([参数])
    Dog d = new Dog();
  • 一个源文件只能由一个public类,可以有多个非public类。
  • 如果一个类定义在某个包中,那么package语句应该在源文件的首行。
  • 如果源文件包含import语句,那么应该放在package语句和类定义之间。如果没有package语句,那么import语句应该在源文件中最前面。
  • import语句和package语句对源文件中定义的所有类都有效。在同一源文件中,不能给不同的类不同的包声明。
  • 参照C++理解

使用包组织类


在DOS下,要编译带包的Java程序有两种办法。

  • 包的引用
  1. 引用类时包名做前缀。e.g. new java.util.Date()
  2. 用import语句加载需要使用的类。在程序开头用import语句加载要使用的类。
  3. 用import加载整个包,用*代替类名位置。他将加载包中的所有类。e.g. import java.io. * ;

Java基本数据类型

类型默认值

数据类型 默认值
byte 0
short 0
int 0
long 0L
float 0.0f
double 0.0d
char ‘u0000’
String (or any object) null
boolean false

注意:

  • float a=0.05; (X)
    0.05默认是double型,不能赋值给比double精度低的float。
    float a=0.05f; (√)
  • int x=5;
    if(x=0)
    x=1; (X)
    第二行,x是int类型,而 if 语句中判断条件是布尔类型。

Java常量
常量在程序运行时不能修改。
在Java中使用final关键字修饰常量。通常使用大写字母表示常量。

  • byte、int、long、和short都可以用十进制、16进制以及8进制的方式来表示。
    当使用常量的时候,前缀 0 表示 8 进制,而前缀 0x 代表 16 进制,例如:
    int decimal = 100;
    int octal = 0144;
    int hexa = 0x64;
  • 字符串常量和字符常量都可以包含任何Unicode字符。

自动类型转换
必须满足转换前的数据类型的位数要低于转换后的数据类型,例如: short数据类型的位数为16位,就可以自动转换位数为32的int类型,同样float数据类型的位数为32,可以自动转换为64位的double类型。
低 --------------------------------------------------------------> 高

byte,short,char—> int —> long—> float —> double
数据类型转换遵循如下规则:

  1. 不能对double类型进行转换。
  2. 不能把对象类型转换成不相关的类对象。
  3. 在把容量大的类型转换为容量小的类型时必须使用强制类型转换。
  4. 转换过程中可能导致溢出或损失精度。
  5. 浮点数到整数的转换是通过舍弃小数得到,而不是四舍五入。
    e.g.
    (int)23.7 == 23;
    (int)-45.89f == -45

隐含强制类型转换

  1. 整数的默认类型是 int。
  2. 浮点型不存在这种情况,因为在定义 float 类型时必须在数字后面跟上 F 或者 f。
  3. 复合赋值运算符隐含强制类型转换。

Java逻辑运算符



不带符号的右移>>> 与带符号的右移 >> 在给正数进行右移操作时都是高位补0,区别在于给负数进行右移操作。
前者是高位补0,后者是高位补1

声明数组

一维数组:

格式1:数组元素类型 数组名[];
格式2:数组元素类型名[] 数组名;

给已声明的数组分配空间:
数组名 = new 数组元素类型 [元素个数];
例如:
score = new int[10];
int score[ ]=new int[ ] {1,2,3,4,5,6,7,8,9,10};
(第二个中括号中不能填写数字)

二维数组:

(1)直接为每一维分配空间,如:
int a[][] = new int [2][3];
(2)从最高维开始,按由高到低的顺序分别为每一维分配空间。如:
int a[][] = new int [2][];
a[0] = new int [3];
a[1] = new int [4]
(3)二维数组的动态创建示例:

public class ArrayOfArraysDemo2 { public static void main(String[] args) { int[][] aMatrix = new int[4][]; for (int i = 0; i < aMatrix.length; i++)  { //动态创建第二维aMatrix[i] = new int[i+1]; for (int j = 0; j < aMatrix[i].length; j++)  aMatrix[i][j] = i + j; } for (int i = 0; i < aMatrix.length; i++) { for (int j = 0; j < aMatrix[i].length; j++)  System.out.print(aMatrix[i][j] + " "); System.out.println(); } }
}

运行结果:
0
1 2
2 3 4
3 4 5 6

Arrays类

Arrays类封装了对数组进行操作的一系列静态方法。

  • 利用Arrays类的sort方法可方便地对数组排序。
    例如:
    java.util.Arrays.sort(a) ; //等价于前面程序蓝色部分
  • 利用Arrays类的toString()方法可以将数组转化为字符串的形式。例如:System.out.print( java.util.Arrays.toString(a) );
  • 利用Arrays类的copyOf()方法实现数组的拷贝。例如:
    int[] b=Arrays.copyOf(a,3);

数据的输入输出

使用标准输入输出流
1.数据的输出
(1)print()方法:实现不换行的数据输出;
(2)println()方法:与上面方法的差别是输出数据后将换行。
(3)printf()方法:带格式描述的数据输出。JDK1.5新增。
该方法包含两个参数,第1个参数中给出输出格式的描述,第2个参数为输出数据,其中,输出格式描述字符串中需要安排与输出数据对应的格式符。
常用格式符包括:%d代表十进制数;%f代表浮点数;%e代表科学表示法的指数位数;%n代表换行符;%x代表十六进制数;%s代表字符串。 %c 单个字符, %% 输出百分号%

注意:输出语句中“+”的特性,如下例题体会:

System.out.println(2+3+",x="+2+3);
System.out.println(2*3+",x="+2*3);
System.out.print("1+2+3"+4+5);

输出结果:
5,x=23
6,x=6
1+2+345

2.数据的输入

  • 字符类型数据输入
    利用标准输入流(System.in)的read()方法,可以从键盘读取字符。但要注意,read()方法从键盘获取的是输入的字符的字节表示形式(返回结果为int类型),需要使用强制转换将其转化为字符型 。
    char c=(char)System.in.read();
  • 字符串输入
  1. 将键盘输入的数据看作字符流,利用InputStreamReader将从键盘输入的字节流数据转化为字符序列来识别 。
  2. 利用BufferedReader对字符流序列进行过滤,借助BufferedReader流对象提供的方法readLine()从键盘读取一个字符串。


    例:字符串类型数据输入
import java.io.*;
public class InputString{ public static void main(String args[]) { String s=“”;            //必须赋初值,否则编译出错System.out.print ("Enter a String please: "); try  { BufferedReader in=  new BufferedReader(new InputStreamReader(System.in)); s=in.readLine(); } catch (IOException e) {  } System.out.println ("You've entered a String: " +s); }
}

3.整数和双精度数的输入

  • 先通过上面的方法获取一个由数字字符组成的字符串,然后通过下面的转换方法转换成需要的数据。
    Integer.parseInt(String s) :将数字字符串转化为整数 。
    Double.parseDouble(String s) :将字符串形式的数字数据转化为双精度数。
    例如:
String x="123";
int m= Integer.parseInt(x);  //m 的值为123
x="123.41";
double n= Double.parseDouble(x) ; //n的值为123.41

4.使用java.util.Scanner类

  • 一个扫描器,使用分隔符分解它的输入,默认情况下用空格作为分隔符。Scanner的输入源取决于构造参数,以下从标准输入(键盘)获取数据
    Scanner scanner = new Scanner(System.in);
  • 常用方法:
    boolean hasNext() : 判是否有下一个数据
    int nextInt() :读取整数
    double nextDouble() :读取双精度数
    String nextLine() : 读取一行字符串

常用数学方法

Java基础语法初学者了解相关推荐

  1. Java基础语法02-流程控制

    Java基础语法2 1 流程控制 1.1 概述 在一个程序执行的过程中,各条语句的执行顺序对程序的结果是有直接影响的.也就是说,程序的流程对运行结果有直接的影响.所以,我们必须清楚每条语句的执行流程. ...

  2. Java 基础语法(自用)

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

  3. Java基础语法(数组)

    第4天 Java基础语法 今日内容介绍 u 流程控制语句(switch) u 数组 第1章 流程控制语句 1.1 选择结构switch switch 条件语句也是一种很常用的选择语句,它和if条件语句 ...

  4. 使用java实现面向对象编程第二章_java面向对象编程——第二章 java基础语法

    第二章 java基础语法 1.java关键字 abstract boolean break byte case catch char class const continue default do d ...

  5. Java基础语法(一)

    Java 简介 Java是由Sun Microsystems公司于1995年5月推出的Java面向对象程序设计语言和Java平台的总称.由James Gosling和同事们共同研发,并在1995年正式 ...

  6. java基础语法(二)--单列模式

    java基础语法(二)--单列模式 /*** 功能:单列模式* @author Administrator**/ public class SingletonTest {public static v ...

  7. JAVA学习(三):Java基础语法(变量、常量、数据类型、运算符与数据类型转换)...

    Java基础语法(变量.常量.数据类型.运算符与数据类型转换) 1.变量 Java中.用户能够通过指定数据类型和标识符来声明变量.其基本的语法为: DataType identifier; 或 Dat ...

  8. (31)Java基础语法 --接口

    目录 1.接口的概述 2.接口的定义格式 3.在接口中定义抽象方法 4.定义接口的 实现类 5.接口的使用 接口练习 6.接口的特点 7.一个实现类可以同时实现多个接口 8.接口的继承 9.设计提示 ...

  9. Java基础语法-数据类型与idea配置

    文章目录 day02 - Java基础语法 1. 注释 使用的技巧 注意点 2. 关键字 2.1 概念 2.2 第一个关键字class 3. 字面量 区分技巧 4. 变量 4.1 什么是变量? 4.2 ...

最新文章

  1. 沃森世界研讨会前瞻:AI服务 了解客户情绪
  2. 助力企业抗疫,360金融推出免费AI语音机器人
  3. gitlab添加用户
  4. jsp中获取当前项目名称
  5. WSL2 安装中文输入法教程 简单有效
  6. HTTP协议的请求与响应和CSS属性和定位
  7. mysql导入组织树脚本_mysql存储过程递归调用发作树数据
  8. 拓端tecdat|R语言回测交易:根据历史信号/交易创建股票收益曲线
  9. 机器学习实战应用案例100篇(十)-蝙蝠算法从原理到实战应用案例
  10. 设计模式-模板方法模式-以简历模板为例
  11. resin设置权限_resin加固
  12. docker部署案例
  13. zigbee芯片cc2430资料
  14. DBSCAN 对点云障碍物聚类
  15. java 中奖,用Java实现中奖代码,持续更新
  16. 跨境电商新手如何建立正确的运营思路
  17. Linux命令--lsof
  18. 如何租用国外主机--我购买美国空间bluehost的经验
  19. 使用postman注册登录后,原先记录消失
  20. log4j2输出中文乱码

热门文章

  1. 数据中心节能制冷---冷却塔帮忙
  2. 网页统计所用到的名词解析
  3. 【转】Word 2010 取消拼写/语法检查,隐藏红线/绿线
  4. 2020年前端面试之JS手写代码题合集
  5. 使用PostgREST的RestAPI操作之安装教程
  6. JavaScript缓存处理代码
  7. 容器编排技术 -- Kubernetes kubectl scale 命令详解
  8. CentOS切换运行级别 图形模式/命令行模式
  9. Docker运行参数详解
  10. 64位下搭载汇编环境