java
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大基本数据类型)
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 | outter:for(){ |