##JAVA基础
软件:一系列按照特定顺序组织的计算机数据和指令的集合 分为系统软件和应用软件
人家交互方式:
图形化界面:GUI
命令行的方式:

Windows常见的DOS命令:

dir:列出当前目录下的文件以及文件夹

md:创建目录

rd:删除目录

cd:进入指定目录

cd … :返回上一级目录

cd:退回根目录

del:删除文件

exit:退出命令行

echo Java基础>1.txt 写入内容到1.txt中

java是纯面向对象的语言
JavaSE: 桌面应用

JavaEE:企业开发,针对web应用程序

JavaME:支持移动端

javaCard:java小程序运行在内存小的设备上

特点一:面向对象:
类和对象
特性:继承,封装,多态

二:健壮性 相对安全的内存管理和访问机制

三:跨平台:通过java语言编写的应用程序在不同系统上都可以运行:
在操作系统上安装虚拟机,由JVM负责java程序在该系统上运行

java的两种核心机制:
java虚拟机
垃圾收集机制

JDK:java开发工具包 编译工具javac.exe 打包工具 jar.exe

JRE:java运行环境 虚拟机和核心类库

.java文件(源文件) ->javac.exe 编译 -> .class文件(字节码文件) -> java.exe 运行 ->结果

##变量
概念:内存中的一个存储区域,区域有自己的名称(变量名)和类型(数据类型)

注意:先声明后使用

作用域:一个{}

程序的执行过程: :硬盘中的程序:1.加载到内存区,2.找到main方法开始执行 -->操作系统代码 -->3.执行过程中的内存管理

栈stack:局部变量,对象声明的引用
堆heap:new出来的类或数组的实例(含成员变量)
静态域:静态变量
常量池(方法区):字符串变量

基本数据类型:8个

数值型:

	整数类型:byte1(-128~127) short2 int4 long8(定义时末尾加L)
	
	浮点类型:float4(声明后加F)  double8

字符型

	char

布尔型

boolean

引用数据类型

	类class
	接口interface
	数据 []

变量的分类:

  • 方法外,类体内的声明变量:成员变量

实例变量 不以static修饰

类变量 static修饰

  • 方法体内声明的变量为局部变量

方法局部变量 (方法内声明)

代码块局部变量(代码块中声明)

##变量的自动类型转换和强制类型转换

自动类型转换

char c1 = 'a';
int i3 = c1 +1 ;

结果i3=98

char 和int运算 默认是int类型

 short a = 1;
 byte b =2 ;
 a+b是int类型

int char short 类型之间做运算式int类型

强制类型转换

使用强制类型转换符 (数据类型)

问题:精度的损失

 short s = 10
 s = s+3;

编译出错 s+3变为int类型 将int类型赋值给short类型,编译不通过

int i=1;
i *=0.1;

打印 i的值 i为0,*0.1变为double类型,再变化就是赋值给int类型

运算符:
instanceOf:检查是否是类的对象
返回true或者false

位运算:

“<<” 左移

“>>” 右移

“>>>>” 无符号右移 不关心符号位 移动直接补0

算术运算

前++ 先+1 后运算

后++ 先运算后+1

##循环遍历的练习
从键盘中输入个数不确定的整数,并判断读入的正数和负数的个数,输入0时结束

import java.util.Scanner;


public class H1 {
    public static void main(String[] args) {
        Scanner s = new Scanner(System.in);
        int a = 0;
        int b = 0;
        for (;;){
            System.out.println("请输入一个整数");

            int num = s.nextInt();
            if (num>0){
                a++;
            }else if (num<0){
                b++;
            }else
                break;
        }
        System.out.println("正数个数:"+a+",负数个数:"+b);
    }
}

循环打印

		    * 
		   * * 
		  * * * 
		 * * * * 
		* * * * * 
		 * * * * 
		  * * * 
		   * * 
		    * 

/*
打印菱形
固定数 五行 0~4  i<4   空格是 4-i *号是 i+1
----*
---* *
--* * *
-* * * *
* * * * *
i	k-	j*   k = 4 - i   j = i + 1
0	4	1
1	3	2
2	2	3
3	1	4
4	0	5
-* * * *
--* * *
---* *
----*
i	k-	j*   k = i + 1   j = 4 - i
0	1	4
1	2	3
2	3	2
3	4	1
*/
public class H1 {
    public static void main(String[] args) {
        //上半部分:
        for(int i = 0;i < 5;i++){
            for(int k = 0;k < 4 - i;k++){
                System.out.print(" ");
            }
            for(int j = 0;j < i + 1;j++){
                System.out.print("* ");
            }
            System.out.println();
        }
        //下半部分
        for(int i = 0;i < 4;i++){
            for(int k = 0;k < i + 1;k++){
                System.out.print(" ");
            }
            for(int j = 0;j < 4 - i;j++){
                System.out.print("* ");
            }
            System.out.println();
        }
    }
}