1 计算机基础
    硬件
        输入设备
            接收数据、指令
            键盘  鼠标  摄像头  扫描仪
        输出设备
            显示数据,输出数据
            显示器 扬声器 音响 
        存储设备
            存储数据
            内存:特点:瞬时存储。当程序关闭,断电的时,数据容易丢失
                    速度快。容量小
            外存:硬盘
                特点:永久存储。
                    速度相对慢。容量大
            存储单元:位bit   b
                字节byte B       1B=8b
                kB   1kb=1024B
                MB 1MB=1024kb
                GB
                TB
        CPU
            中央处理单元  ---电脑之脑
            控制器  --处理指令
            运算器  --计算
        其它
            GPU 声卡  网卡  主板
        
        各个硬件之间协同完成一定的任务:
        1、开关机:操作系统需要的数据  --  内存 
        2、输入数据:输入设备--控制器--内存--计算器--内存--输出设备/外存
    软件
        系统软件
            操作系统 :Windows  Mac Linux  Android  
            DOS:
                常用的指令:ipconfig
                切换目录  cd(change dir)
                切换到子目录  cd 子目录名
                回到父目录 cd..
                切换盘符 盘符:
                相对路径  从当前路径出发
                绝对路径  从盘符根目录开始
                
                通用:1、不区分大小写
                          2、Tab键补全,多个子目录之间切换
                          3、方向上键、下键可以在使用过的命令间切换
                         4、cls清屏
            驱动程序
                
        应用软件
            单机软件
            网络软件  QQ  
            
            系统架构:C/S   Client/Server  
                    安装、升级、卸载
                B/S   Browser/Server 
                    网站

软件,程序
    生活中的程序:为了解决某个问题,而进行的一系列的有序动作集
    计算机中的程序:为了让计算机帮我们解决某个问题,而编写的一系列的有序指令集

编程语言
    机器语言:010100100
        可读性不强,维护性,扩展性不强
        速度很快
    汇编语言:借助助记符来表达   add 2,3 result
        汇编器
        可读性增强了。比较贴近机器语言,汇编程序很冗长。
        速度快,对计算机的硬件组成非常了解
    高级语言:C语言--鼻祖   result=2+3;
        可读性,维护性,扩展性
        速度慢 
        Java C# C++ Python javascript 等
        解释性语言:源程序--解释器逐行解释逐行执行           Python、javascript
        编译性语言:源程序--编译器整体编译成可执行文件,再执行  Java  C#
        
        编程思想:
        面向对象:
        面向过程:        

2.java   高级语言 ,面向对象
    发展历史:属于Sun公司
    1996年1月,Sun公司发布了Java的第一个开发工具包(JDK 1.0)
    1998年12月8日,第二代Java平台的企业版J2EE发布
        JavaME  微型版  应用于移动、无线及有限资源的环境
        JavaSE   标准版  应用于桌面环境-----核心
        JavaEE  企业版,应用于基于Java的应用服务器
    2004年9月30日  1.5   包括泛型支持、基本类型的自动装箱、改进的循环、枚举类型、格式化I/O及可变参数
    2009年,甲骨文Oracle公司宣布收购Sun
    2014年,甲骨文公司发布了Java8正式版   --lambda表达式等等

java logo:一杯热气腾腾的咖啡
java命名:
    1、java像这种咖啡一样流行
    2、软件开发可以一边喝咖啡,一边编程
java之父:Java创始人之一:詹姆斯·高斯林

java编程 (java语言-跨平台--跨操作系统)
    1、搭建环境
         jdk(java  development kit)java开发包  -----帮助编程
         jre(java runtime environment)java运行时环境   ---帮助运行
         jvm(java virtual machine)java虚拟机   ----java语言跨平台

      jdk的安装

    'javac' 不是内部或外部命令,也不是可运行的程序或批处理文件。
    配置环境变量  ---  想在任何路径下都可以使用bin下的命令
        在系统变量中的path中追加   jdk安装目录\bin    
            如:D:\install\Jdk\jdk1.8\bin
        或者
        新建JAVA_HOME   jdk安装目录(D:\install\Jdk\jdk1.8)
        path 追加  %JAVA_HOME%\bin

        classpath:无需配置

        重启cmd 再测试javac -version

 

    2、编写源程序  
        .java   文本文件
        public class Hello{
            public static void main(String[] args){
                System.out.println("hello,java");
            }
        }
        1、main方法是程序的入口,有四要素,public  static   void  String[]
        2、System.out.println("hello,java"); 往控制台输出内容,;表示指令的结束
        3、文件名要和public修饰的类名一致
        4、层次之间要有缩进,tab
        5、起始的{在行末,结束的}和该层次对齐
        6、java区分大小写
        7、类名,遵循的是大驼峰法:每个单词首字母大些  StudentManager
        8、要英文半角下输入
        
    3、编译 
        .class 字节码文件
        
        先进入到源程序的目录下
        javac 文件名.java 
    4、运行
        java  文件名

问题?输入中文乱码
    根本原因:编码格式,不同的编码格式所占空间不同
    英文字母,数字,符号:ascii码 
    iso-8859-1:只支持英文,1个字符占1个字节
    unicode:1个字符占2个字节 
    utf-8:1个字节,2个字节,3个字节,4个字节
    gbk,gb2312:支持中文 1个字符占2个字节 

输出:System.out.println("你好");    //line   输出内容后换行
           System.out.print("你好"); 输出内容后不换行
           System.out.println();//空白行
           System.out.print(); XXXXX 没有这样的写法
           转义字符  \t(相当于tab键)   \n(换行)
           练习:
    欢迎使用中国工商银行电子系统
        1、注册
        2、登录
        3、退出
请选择:

public class gong{
	public static void main(String[] args){
		System.out.print("\t欢迎使用中国工商银行电子系统\n\t\t1.注册\n\t\t2.登陆\n\t\t3.推出\n请选择");		
	}
}

注释:解释代码,给程序员看的,jvm不管,
    注释的多少不影响程序的效率
    建议写注释,多多益善
    
    1、单行注释 //
    2、多行注释 /*   */
    3、文档注释  /**   */     javadoc

//练习  手机信息 :品牌:华为  价格:2999.9元  是否打折中:true, 颜色:白

public class huawei{
	public static void main(String[] args){
	System.out.println("产品信息:");
	String phone= "华为";
	System.out.println("品牌:"+phone);
	double price=2999.9;
	System.out.println("价格:"+price);
	char color  ='白';
	System.out.println("颜色:"+color);
	boolean isDisP =true;
	System.out.println("是否打折:"+isDisP);
	}
}

 字面常量:整数,默认是int    小数,默认是double