java基础知识

Java特性


  • 简易性:Java设计人员删除了C++中许多复杂的功能,如指针操纵和运算符重载等
  • 面向对象:在Java中任何东西都是对象。因此,重点集中在数据、应用程序中操作对象的方法以及过程上
  • 健壮性:Java在编译(从文本代码变成Java字节码的过程)和解释(运行时)时都会检查代码(异常处理机制)
  • 安全性:Java供了用于执行程序的受控环境,以及多层次的安全控制
  • 分布式:Java可用于开发能够在多个平台、操作系统和图形用户界面之间移植的应用程序
  • 多线程:Java程序使用称为“多线程”的进程同时处理多项任务
  • 可移植:JVM虚拟机

HelloWorld
1)编写:

每一个java文件都是.java结尾的,称为源文件【HelloWorld.java】。java程序就存在于源文件中,经过编译成 .class 字节码文件。

public class HelloWorld{
	//程序的主方法,是程序的入口
	  public static void main(String args[]){
		//要执行的代码
	       System.out.println("HelloWorld");
          }
    }

可以用 cmd 进入文件路径下进行编译与执行

javac HelloWorld.java

java HelloWorld

若写的 java 类带有包名

package com.jcy;

编译的时候就需要打包编译

//编译时候命令: 
javac -d . HelloWorld.java
//执行时候命令:
java com.jcy.HelloWorld

根据文档注释生成 API 文档

//javadoc  -d 文件目录名 -author -version 源文件名.java

javadoc -d . -author -version HelloWorld.java
2)注释:

①单行注释 //
②多行注释 /* / (多行注释不能够嵌套)
③文档注释 /
* */


基本语法

1. 关键字

关键字是SUN公司事先定义的,有特别意义的字符序列 java保留字 系统已经占用了这些单词,我们不能再去对它们有别的定义。

特点:在 Java 中关键字都是小写的

2. 标识符

标识符可以标识类名,接口名,变量名,方法名

3. 数据类型

Java 总共有两种数据类型, 主要有基本类型和引用类型, 基本类型有 8 种, 引用数据类型有3 种

1)基本类型
整型

byte 1字节 short 2字节 int 4字节 long 8字节

浮点型

float 4个字节 double 8字节

字符型

char 2个字节

布尔类型

boolean true 和 false 不可以取 null

image

2)引用类型

数组

接口

4.字符编码

ASCII 字符编码采用一个字节编码,主要针对英文编码 ISO-8859-1又称latin-1,是国际标准化组织ISO制定的,主要为了西欧语言中的字符编码,和ASCII兼容 GB2312/GBK/GB18030国标(guo biao)主要是汉字编码,三种编码从容量上看是包含关系 unicode Unicode统一了全世界上的所有文字编码,unicode有几种实现:UTF-8,UTF-16,UTF-32

5.变量

变量是内存中用来存放特定数据类型数据的一块内存空间,它的值是可以改变的。Java中的变量有四个基本属性:变量名,数据类型,存储单元和变量值

变量名:合法的标识符

变量的数据类型:可以是基本类型和引用类型(必须包含类型)

存储单元:存储单元大小是由数据类型决定的,如:int 为4个字节32位

变量值:在存储单元中存放的值

变量的声明格式: 类型 变量名;

6.运算符

算数运算符(7):+ - * / % ++ --

关系运算符(6):== != > >= < <=

逻辑运算符(6):&& || ! ^ & |

位运算符(7):& | ~ ^ >> << >>>

三元运算符 (条件表达式)? 表达式1 : 表达式2;

注意:

1)两种逻辑与(&&和&)的运算规则基本相同,两种逻辑或(||和|)的运算规则也基本相同。 &和|运算是把逻辑表达式全部计算完,而&&和||运算具有短路计算功能。

所谓短路计算,是指系统从左至右进行逻辑表达式的计算,一旦出现计算结果已经确定的情况,则计算过程即被终止。 对于&&运算来说,只要运算符左端的值为false,则因无论运算符右端的值为true或为false,其最终结果都为false。 所以,系统一旦判断出&&运算符左端的值为false,则系统将终止其后的计算过程; 对于 || 运算来说,只要运算符左端的值为true,则因无论运算符右端的值为true或为false,其最终结果都为true。 所以,系统一旦判断出|| 运算符左端的值为true,则系统将终止其后的计算过程。

2) ” ++ “和”--“用于数值变量之前,在赋值操作中,先对被”++“或”--“操作变量值加1或者先减1,然后在进行其他的操作;

" ++ "和”--“用于数值变量之后,在赋值操作中,先用被”++“或”--“的操作变量值进行其他的操作,然后在对其值加1或者减1。

3)二进制 对于原码, 反码, 补码而言, 需要注意以下几点:

(1).Java中没有无符号数, 换言之, Java中的数都是有符号的;

(2).二进制的最高位是符号位, 0表示正数, 1表示负数;

(3).正数的原码, 反码, 补码都一样;

(4).负数的反码=它的原码符号位不变, 其他位取反;

(5).负数的补码=它的反码+1;

(6).0的反码, 补码都是0;

(7).在计算机运算的时候, 都是以补码的方式来运算的.

Java的算数运算符、关系运算符、逻辑运算符、位运算符

7.基础类型转换

自动类型提升 强制类型转换 隐式类型转换

char类型本身是无符号

所以byte不能自动提升到char类型

char也不会自动提升到short

byte可以直接提升到short

Java编译器拿到的数值,默认类型是int,如果赋值给范围小于int的类型,编译器会自行判断,如果当前的数值超过了赋值目标的范围,这时就会报错,否则会自行转换成目标类型。

8.流程控制

1.顺序结构

程序从上往下的顺序执行

2.分支结构:

if(判断句)
  { 语句a;}
else
  {语句b;}
if(判断句)
    {语句a;}
else if(判断句)
    {语句b;}
else
    {语句c;}
//switch只能进行多数值的判断,而且switch支持的判断数据类型(一直在发展)>
//最初:int  JDK1.5:加入枚举类型  JDK1.7:加入String类型

switch (表达式){
   case 值1 :
      语句1;break;
  case 值2 :
      语句2;break;
   ...
  default :
      语句n ;break;
}

3.循环结构:

1.while循环

	while(boolean表达式){
		循环体语句;
	}
先判断后执行

2.do...while循环

	do{
		循环体语句;
	}while(boolean表达式);
先执行一遍再判断,至少会执行一遍

3.for循环

	for(表达式1;表达式2;表达式3){
		循环体语句;
	};
表达式1:初始表达式,表达式2;boolean表达式,表达式3:增量表达式

备注:

跳转结构:

1.return;会跳出整个方法

2.continue;跳过后面的语句直接进行下一次循环

3.break;跳出当前整个循环,执行循环后面的语句

9.java 修饰符

1- 访问控制修饰符

public (公有的)对所有的类都可见,使用位置:变量 方法 类 接口

protected(受保护的)对同一包内的类和所有子类可见 使用位置:变量 方法 内部类

default(默认的)在同一包内可见,不用写修饰符,使用位置:变量 方法 类 接口

private(私有的)只在同一类可见,使用位置:变量 方法 内部类

修饰符当前类同包内子孙类其它包
public
protected
default
private

---|---

2- 非访问控制修饰符

static 静态的 使用位置:变量 方法 声明静态变量 静态变量也叫类变量 局部变量不能声明为static变量 类中所有的对象都可以使用,并且只有一份 静态方法 静态方法不能使用非静态变量

final 常态的

final变量 也就是常量 只能初始化一次,之后值不能被改变

final常和static搭配来声明类的常量

final方法 主要目的是防止方法的内容被修改(子类继承)

final类 不能被继承的类 abstract 抽象的

原文地址:https://www.cnblogs.com/SacredOdysseyHD/p/8343557.html