JAVA基础
学习1.0
应用程序=算法+数据结构
常用DOS命令
1、换盘处:d:
2、创建目录: md
3、删除文件: del 1.doc 删除文件
del *.txt 删除所有txt文件
rd team1 删除文件目录(需里面文件为空)
API文档
类库使用说明书
基本语法
public class hello //若为public类,则类名应为文件名
{
//程序的入口是main()方法,格式固定
public static void main(String[] args) //args :arguments 参数
{
System.out.println("helo world");//先输出数据,后换行
System.out.print("helo world");//只输出数据
}
}
基本原理
1、 JDK,JRE,JVM之间的关系
JDK=JRE+java的开发工具
JRE=JVM+Java核心类库
2、为什么要配置path环境变量
希望在任何路径下都可以执行
3、 常用的命令行操作?
cd
md
rd
del
cd…
cd/
4、注释
单行注释:/
多行注释: /* / 不可以嵌套使用
文档注释:/* */
学习2.0
基本语法1.0
关键字keyword & 保留字
所有的都是小写,
保留字目前不是关键字,但起名时尽量避免
标识符
凡是可以自己起名字的地方都是标识符
命名规则:26个字母大小写,0-9,_,$;
数字不能开头
不能使用关键字和保留字,但可以包含
严格区分大小写
不能包含空格
命名规范:包名--- xxxyyyzzz
类名,接口名--- XxxYyyZzz
变量名,方法名--- xxxYyyZzz
常量名--- XXX_YYY_ZZZ
见名知意
变量
必须先声明,后使用
只有在定义的作用域内可以使用
数据类型:
一,基本数据类型
---------------数值型-------------------------------
1、整形: 1字节 `byte` 范围:-128~127
2字节 `short`
4字节 `int`
8字节 `long ` 必须以“l”或"L"结尾
2、浮点型:单精度 4字节 `float` 必须以“f”或"F"结尾
双精度 8字节 `double` 可以不用f,F
-------------字符型-------------------------------------
3、内部只能写一个字符或转义字符或者Unicode值 `char`
-------------布尔型-----------------------------------
4、`booleam` 只能取两个值之一:true false
二,引用数据类型
-------------类
5、
------------接口
6、
------------数组
7、
三、基本数据类型之间的运算
不包含布尔型,是前几种
1、自动类型提升
byte 、char、 short > int > long > float > double
容量小和容量大的运算,会自动提升为大范围的
byte、char、short三者做做运算只能用int 接收
2、强制类型转换
自动类型提升的逆运算,由大变小
需要用强转符 ();
可能会有精度损
--------------整形常量默认为int 型
--------------浮点型常量默认为double
四、 String 类型变量的使用
声明时使用 " "
可以和8种基本类型运算,且只能是连接符:+ , 结果是String型
a—97
A—65
五、进制与进制之间的转换
运算符
一、算数运算符
%–取模(取余)
(前)++、-- 先自增,后运算
(后)++ 、-- 先运算,后自增
自增不会改变类型
二、赋值运算符
+= 之类的不会改变变量本身的数据类型
三、比较运算符
运算结果是布尔型 (true 或 false)
四、逻辑运算符
& --- 逻辑与
&& --- 短路与
运算结果相同
| --- 逻辑或
|| --- 短路或
运算结果相同
! --- 逻辑非
^ --- 短路非
五、位运算符
都是整形的数据
(在一定范围内)每向左移一位,相当于乘了一个2;向右则是除以2;
六、三元运算符
(条件表达式)?表达式1:表达式2;
条件表达式的结果是boolean型
若结果是true,则为1;若是false,则为2
都可以改成 if else 语句(反之不可)
七、运算符的优先级
加()就行;
流程控制
一、顺序结构
二、分支结构
1、if else 语句
else是可选的(若有省略,则就近原则); 可嵌套
- if
if - else
if - else if … else
2、switch-case语句
若想实现多选一,应在每个都加break(break可不加);
swtch表达式,只有六种类型:byte、short、char、int 、枚举类型、 String类型
case 后放常量
default 位置也可随机(一般不用)
若多个case的执行语句一样,则可合并
三、循环结构
可用break跳出循环
1、for 循环
循环条件是boolean型
2、while 循环
不能忘了循环的迭代条件
3、do-while 循环
4、break和continue的使用
break:结束当前循环
continue:结束当次循环
关键字后面不能声明执行语句
break label; 结束for前面有label标识的一层循环结构
return 是结束一个方法
从键盘获取不同类型的变量
需要Scanner类
具体实现步骤:
1、导包: import java.util.Scanner;
2、Scanner 的实例化 :Scanner scan=new Scanner(System.in);
3、调用Scanner类的相关方法,int num=scan.nextInt();
来获取指定类型的变量 :System.out.println(num);
string 型:`String s=scan.next();`
double型:`double d=scan.nextDouble();`
boolean型:`boolean b=scan.nextBoolean();`
如何获取随机数
例:Math.random(); // 范围是[0.0,1.0) 且为double 型
想要闭区间 [a,b]:Math.random()*(b-a+1)+a;
从键盘获取char:String word scan.next(); char c =word.charAt(0);
获取当前时间距离1970-01-01 00:00:00时间
:long start=System.currentTimeMillis(); long end=System.currentTimeMillis();
例子、案例1
100以内的所有质数
class PrimeNumber
{
public static void main(String[] args)
{
boolean isFlag=true;
label:for(int i=2;i<=100;i++)
{
for(int j=2;j<=Math.sqrt(i);j++) //优化二:
{
if(i%j == 0) //i被j除尽
{
/*
isFlag=false;
break; //优化一:
*/
continue label; //优化三:
}
}
if(isFlag==true)
{
System.out.println(i);
}
isFlag=true; //重置
}
}
}
案例1、
跳过