1.java
  • Java核心思想
  • Java技术卷I(推荐)
2.数据结构与算法分析(java语言描述)
可移植性
多线程

打开命令行:Ctrl+ ·

Java是半编译,半解释

编译:javac

用编译命令javac将.Java(源文件)编译为\.class文件

class文件 为平台无关的二进制文件,提供给JVM虚拟机

解释命令:Java

使用java命令实际上启动了JVM虚拟机进程(软件)来将二进制class文件翻译为平台相关的可执行文件并执行主方法中字符数组传值“

使用java命令解释二进制class文件传值

表示运行Day1文件并将hello world

主方法一定实在主类中定义,并且一个源文件只有一个主类

源文件中若有中文,编译时使用如下命令

javac -encoding UTF-8 源文件名称

1.java 数据类型与运算符

1.1java注释

a. 单行注释 //

b. 多行注释

c. 文档注释/* /

1.2 java标识符(变量,常量,类 ,函数等的名称)

1.2.1 标识符要求

由字母,数字,_ 组成,其中不能以数字开头,不能使用关键字

命名规范:驼峰命名法

大驼峰:类名 ,eg: class Demo class FirstDemo

小驼峰:对于变量,函数,

  • 只含有一个单词,全部小写;first
  • 多个单词,每个单词首字母大写;eg:FirstName

常量命名:

eg:final int MY_INT_VALUE = 10;

1.3数据类型

1.3.1基本数据类型(8大基本数据类型)
  • 数值型(5个)

    • 整形

    byte:一个字节,

    short:2个字节,

    int:4个字节,(推荐整数)

    若整形常量在byte的范围内,整形常量可以直接赋值给byte,无须强转

long:8个字节,

  • 浮点型

    **钱的话就用DigDecimal类型吧;

    double:8个字节

    java中描述小数时默认是double ,

    float:4个字节

    申明一个float型,需要添加f或F;

小数默认是double 类型

不能将 float x = 3.14 是错误的

  • 在java中任何一个整形常量都是int类型

    java中声明long常量,需要在数字后加(L)

    范围小的数据类型可以自动转为范围大的数据类型

    范围大的数据类型需要强制转换为范围小的数据类型(有精度误差)

    所有数据类型默认值,需要结合类来观察,方法中的局部变量不存在默认值(局部变量必须先赋值后使用)

  • 字符型

    表示无符号的16位整数Unicode -encoding UTF-8

    char:2个字节,(默认值\u0000)

    \u0041:A使用16进制;

  • 转义字符

    \ : \‘

    \user :\\user

  • 布尔型

    booler:1位(false)

注意:byte: byte = 125;是可以的

1.3.2引用数据类型(数组,类,接口)

String:“abcdefg”:必须使用双引号引起来:字符串常量::内置的类名

数据的转换

java运算符

+-*/%

System.out.println(‘A’+’B’);

System.out.println(9876/1000*1000);

注意结果为9000;

正数除以0会出现除0错误

小数除以0会是正的无穷大或者负的无穷大

NaN:0.0除以0.0 时》:自己和自己都不等

逻辑运算符(||,&&,!)

​ ||(短路或)

​ &&(短路与)

关系运算符
数据类型 变量 = 布尔类型表达式?ture:false
位运算符

| , &

++ ——::自加自减:都有前置和后置之分

前置:++result :表示对result加1后的结果进行运算

后置:result++:表示对result加1 之前的值进行运算

三元运算符

变量类型 变量 = 表达式 ? 值1:值2;

移位操作符

<<(左移) >>(右移) >>>(无符号右移)::右移加0

梳理
数据类型:

基本数据类型byte1 char2 short2 int4 long4 float4 double8 boolean1bit ::引用数据类型String

默认int ,默认double

java中的控制方法与方法定义

程序结构:
顺序结构,分支结构,循环结构

分支结构(if,else,switch)

swith(int|char|enum|String)

case 表示分支

分支结束使用break,结束分支语句

循环结构

for(初始化语句1;结束条件2;条件更新3){

​ 执行代码4;

}

while(结束条件){

}

do{ } while(结束条件)

continue;

break;

for - each 用于数组输出

用于数组与类集的输出,对于原集合的修改依然采用原来for循环。

语法

for(数据类型 临时变量名称 :数组名称){

}

循环的性能优化

变量定义在循环外::尽量将小的值放到外面::

java中的方法

方法的定义与使用(形参只用值传递)

声明:

public static 方法返回值 方法名称([参数类型 变量]。。。。){

​ 方法体代码;

​ return 返回值

}

当方法以void声明时,表示此方法无返回值;

但是void

方法重载(override)

定义:方法名称相同参数的类型,【顺序】个数不同,与返回值无关!!!!

方法签名:方法名称,参数

开发规范::重载方法 请保证返回值类型一值;

方法递归(循环实现)

1.用递归求阶乘

2.汉诺塔

方法重写

循环语句

break outter:

break <标签名称>;

1
2
3
4
5
outter:for(){
for(){
break outter;
}
}

Java虚拟机的作用