Java语言基础

java笔记

百知教育学习 - 胡鑫喆 - java 语言基础

01_编程语言简介

  • 程序:进行某项活动或过程所规定的途径
  • 计算机
    硬件:主板,硬盘,cpu等
    软件:编程语言(将自然语言转换成计算机能听懂的语言)
    • 人:符号语言到自然语言
    • 计算机:编程语言,机器语言
    • 编程语言是人与计算机交流的媒介
  • 编程语言:C,C++,C#,Java等
  • 发展历程:
    • C
    • C++(在C的基础上多了面向对象)
    • Java(纯面向对象)跨平台

02_Java的前世今生

  • 1995年5月23日java发布,是由sun公司推出的一门富有创造力的面向对象的程序设计语言,是由“java之父”的詹姆斯·戈士林博士亲手设计而成的,他完成了java技术的原始编译和虚拟机。sun公司如今被oracle收购。
  • 产生背景:当时互联网时代中Windows,unix等系统平台和IBM个人电脑,Mac苹果计算机等的硬件平台的各种设备的操作系统的不同,急需一种编程语言实现“一次编写,到处运行”。
    • 前世今生:java最初的名字叫做oak,1995年被重命名为java,并正式发布,如今已成为最受欢迎的编程语言。
      • 1995.5.23日java发布
      • 1996年发布JDK 1.0
      • 1999年发布J2SE,J2EE,J2ME
      • 2005年更名Java SE,Java EE,Java ME
      • 2009年被Oracle收购
      • 2011年由Oracle发布Java 7.0
      • 2014年由Oracle发布Java 8.0
  • 如何实现:软件—>操作系统—>硬件
    • 软件:编程语言组成的一系列软件
    • 硬件:主板等一系列硬件
    • 操作系统DS

03_java特点

  • 面向对象(使用计算机模拟现实世界,解决现实问题,贴近人类思维模式)(Java思想
  • 简单(相对C,C++,C#,不易造成内存溢出,减少代码量,代码可读性强)
  • 开放(导致java的内容越来越多,知识面十分广阔)
  • 跨平台(操作系统,服务器,数据库)
  • java发展前景:新领域的出现会需要程序员编写,所以该领域会迎合Java来符合更多程序员胃口(强者恒强
  • 移动互联网:安卓(谷歌的一个手机操作系统),IOS等选用Java作为语言基础,所以Java工程师可以直接编写安卓软件
  • 云计算(利用互联网积累的数据):以Java为语言基础

04_Java的运行机制

  • 两种执行机制
    • 编译执行:将源文件编译成机器码,一次编译,多次执行。执行效率高,但不可跨平台。典型语言:C语言,C++
    • 解释执行:将源文件被一行一行解释,一行一行执行。不同的操作系统具备不同的编译器。执行效率低,可以跨平台
  • Java先编译,再解释:.java—>.class(不是机器码文件)—>解释器文件(转换成机器码文件)
    • 将源文件变异成字节码文件(平台中立文件.class),再将字节码文件进行解释执行。
    • Java的设计理念:Write Once Run Anywhere
  • 操作系统—>1Byte为8位,1位即1bit
    • 16位:2B
    • 32位:4B
    • 64位:8B
  • 每个平台的位数不同,所以需要统一标准。Java使用32位的,所以使用了Java虚拟机。
    • Java虚拟机屏蔽了底层操作系统的差异
    • JDK(Java开发工具包)(Java Development Kit)开发环境:包含JRE+类库+开发工具包(编译器+调试工具)
      • JRE(Java Runtime Environment)运行环境:包含JVM和解释器,完整的Java运行环境
        • JVM(Java Virtual Machine)虚拟机:
          • 使用软件在不同的操作系统中,模拟相同的环境。虚拟机会替你申请相应的字节。不让你直接面对操作系统。 不同window必须使用 相应的虚拟机
        • 解释器:解释class文件。
      • 编译器
      • 调试工具
      • 类库

05_第一个Java程序

  • 代码
    编译时大小写无所谓,但运行时必须注意大小写
    class Hello{
            public static void main(String[] args){
                System.out.println("hello world");
	 		}
	}

  • DOS命令
  • windows键+r键呼出运行窗口—>输入cmd并回车打开DOS命令窗口
    • 更换盘符:d
    • 查看当前目下的内容:dir
    • 进入文件夹:cd 文件夹的名字
    • 返回上一级目录:cd…
    • 清空屏幕:cls
    • 删除文件:del 文件名
    • 删除文件夹:rd 文件夹名称
    • 退出:exit
  • 编译: javac+空格+源文件名称.java
  • 运行: java+类名(即class后边的hello)

06_环境变量

  • Java_Home环境变量:通知其他应用本机装了JDK,装在了什么位置

  • Pass环境变量(javac,java命令都在bin目录):bin目录放入pass变量,则可以在任何目录下找到这些命令(而要使在任何目录下都能运行javac,则将javac放入bin目录)

  • ClassPass 类路径:运行类找到hello.class 环境变量为 .. 表示当前目录)找到就运行,找不到就报错

  • 换一个目录也运行hello类:把hello.class的目录放入classpass的环境变量值设置为相应目录

  •     就是将 **.** 改为相应地址
    

  • 写类时一般加一个访问权限,即访问修饰符,常用的时public,(即公开类)公开类要求源文件文件名和类名完全一致

    • 当定义为一个公开类时,大小写不能出错
    • 一个文件里能写很多个类,但只能写一个公开类(所以基本是一个源文件一个类)
  		public class Hello{
            public static void main(String[] args){
                System.out.println("hello world");
	 			}
		}

07_package语句

  • package包
    • 作用:类似于文件夹,用于管理字节码(.class)文件
    • 语法—声明包:package 包名(声明所有类属于哪个包)
    • 位置:必须写在源文件的第一行
    • 带包编译:javac -d . 源文件名称.java(自动生成目录结构)
    • 带包运行:java 包名.类名(包名+类名又称权限定名)
    • 命名规则(采用域名倒置的规则):例如:www.baizhi.com.cn --> cn.com.baizhi.www
  package a1;
  public class Hello{
            public static void main(String[] args){
                System.out.println("hello world");
	 		}
	}

注意:

  • 包应在一个文件夹里

  • 必须让Hello这个类在a1这个包里

  • 不在a1目录下运行Hello这个类

  • 包声明必须在源文件的第一行

    由于自主放包比较麻烦,所以可直接使用代码替代操作
    

  • -d:按照包结构输出(即自动按照包结构放入目录中,可自动创建目录)

  • . :生成的目录结构(即a1)放在当前目录下

  • 注意:包名可叠加 类型:package a1.a2.a3.a4;

08_import语句

import

  • import java.util.List 提前声明 list是指java.util.list
  • import java.util.中的:代表所有类
    • 不包含子包里的类
    • import java. * . * (错误的写法星号不能代表子包,只能代表类
    • 如果有两个类用了*,且有不同的包拥有相同的类,则会报错 所以不能省略包名
  • java中的所有类都有包名
package a1;
public class Hello{
          public static void main(String[] args){
              System.out.println("hello world");
  	 }
}
  • string[ ] ,system类默认包 java.lang包
    • 每一个java程序默认有一个java.lang.*(可写可不写)为隐含代码
      • 使用lang下的子包时则要么写包名,要么写import

java程序的基本结构:

  • 包 package : 0-1个

  • 导包 import : 0-n个

  • 类 : 1-n(公开类只能写一个)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值