JAVA基础知识
一、计算机语言发展史
- 第一代 机器语言
- 第二代 汇编语言
- 第三代 高级语言
面向过程:C、PASCAL、COBOL
面向对象:C++、Python、JAVA、C#
二、java搭建
2.1 JAVA特性
- 可移植性
- 简单性
- 面向对象
- 高性能
- 安全性
- java核心机制-垃圾回收机制和跨平台原理
2.2 JDK、JRE、JVM区别
- jdk面向开发者
- jre面向使用者
- jvm java内部运行核心
2.3 JDK目录结构
- bin开发工具执行文件;
- jre是java的运行环境;
- lib是java的运行类库;
- javac.exe 编译,把java源码编译成可识别的字节码。
- java.exe 运行,将字节码文件翻译成机器语言进行运行。
2.4 环境变量
- path指明java命令执行路径,使得系统可以在任何路径下识别java命令;
- classpath 指明class文件加载路径;
- Java_home指明jdk安装路径。
环境搭建验证:
Win+R -----cmd----java-----version
三、java基本语法
3.1 注释
- 单行注释 //
- 多行注释 /* */
- 文档注释 以*/结尾
3.2 标识符
给包、类、变量、或方法命名
注意:命名规则
- 数字、字母、下划线、美元符号
- 不可使用数字开头、不可使用关键字(关键字为小写)
- 见名知意
- 大小写敏感
3.3 常量和变量
- 可以在一行中声明多个变量,但是不提倡;
- 有意义的变量一定要明确变量名,不要全部
a、b、c、a1、s之类的变量; - 声明变量之后请立即初始化(放在一行);
3.4 数据类型
- 基本数据类型:
数值(整数、浮点类型精确到后七位)
字符(两个字节)
布尔(逻辑判断两个常量值,true和false)
注意: 数据类型转换
自动转换
强制转换
- 引用数据类型
类、接口、组
3.5 运算符
- 算数运算符(/相除,%取余)
- 赋值运算符
- 扩展运算符
- 逻辑运算符:左右连接的是布尔类型的操作数;
- 位运算符:左右连接是具体的数值。
"<<"左移
">>"有符号右移
">>>"无符号右移
"&"与
"|"或
"^"异或
"~"取反
运算符优先级:
3.6 流程控制
- 顺序
先执行a,再执行b
- 选择
如果…则…
- 循环
如果…,则再继续…
循环跳转:continue、break
while( 布尔表达式 ) {
//循环内容
}
do {
//代码语句
}while(布尔表达式);
//
for(初始化; 布尔表达式; 更新) {
//代码语句
}
3.7 分支语句
- if-else
- switch-case
switch(expression){
case value :
//语句
break; //可选
case value :
//语句
break; //可选
//你可以有任意数量的case语句
default : //可选
//语句
}
四、IDEA使用
4.1 IDEA配置、使用、常用设置
- 代码模板
实时模板 Live Templates
后缀完成,只能有,不能改 Postfix Completion
- 字体背景等。
4.2 Maven介绍及安装配置
跨平台项目管理工具
- 项目对象模型
- 依赖管理系统
- 一个项目生命周期
- 一组标准集合
- 插件目标
五、练习作业
- Hello world!
public class trytest {
public static void main(String[] args) {
System.out.println("Hello world!");
}
}
结果:
Hello world!
- 求三个数的最大值;
int one = 33;
int two = 24;
int three = 15;
int max;
if(one > two){
if (one > three){
max = one;
}
else {
max = three;
}
}
else{
if(two>three){
max = two;
}
else max = three;
}
System.out.println("三个数的最大值为:"+max);
- 1+3…97+99之和
int i = 1;
int sum = 0;
while(i<100){
if(i%2!=0) {
sum = sum + i;
}
i++;
}
- 1~100之间所有能被7整除的偶数
public class trytest {
public static void main(String[] args) {
int i = 1;
while(i<=100){
if(i%7==0 & i%2==0){
System.out.println(i);
}
i++;
}
}
}
- 判断给定的某年份是否为闰年
闰年的判断规则如下:
(1)若某个年份能被4整除但不能被100整除,则是闰年;
(2)若某个年份能被400整除,则也是闰年
Scanner s = new Scanner(System.in);
System.out.print("输入年份:");
int year = s.nextInt();
if((year%4==0&year%100!=0)|year%400==0)
{
System.out.println(year+"是闰年");
}
else
{
System.out.println(year+"不是闰年");
}
- 打印输出乘法口诀、实心菱形、空心菱形
//乘法表
int a,b;
System.out.println("乘法表:");
for (b = 1; b < 10; b++)
{
for(a = 1; a <= b; a++)
{
System.out.print(a+"*"+b+"="+a*b+" ");
}
System.out.println();
}
//实心菱形
int m,n;
System.out.println("实心菱形:");
for (m = 0; m < 17; m++)
{
if(m<9){
for(n = 0; n < 17; n++)
{
if((8-m)<=n&n<=(8+m))
System.out.print("*");
else
System.out.print(" ");
}
System.out.println();
}
else
{
for(n = 0; n < 17; n++)
{
if((m-8)<=n&n<=24-m)
System.out.print("*");
else
System.out.print(" ");
}
System.out.println();
}
}
//空心菱形
int m1,n1;
System.out.println("空心菱形:");
for (m1 = 0; m1 < 17; m1++)
{
if(m1<9){
for(n1 = 0; n1 < 17; n1++)
{
if((n1==8-m1) | n1==8+m1)
System.out.print("*");
else
System.out.print(" ");
}
System.out.println();
}
else
{
for(n1 = 0; n1 < 17; n1++)
{
if(n1==m1-8 || n1==24-m1)
System.out.print("*");
else
System.out.print(" ");
}
System.out.println();
}
}