当前位置: 首页 > news >正文

Java01

1 Java的概述

1.1 Java语言发展史

詹姆斯·高斯林(James Gosling)1977年获得了加拿大卡尔加里大学计算机科学学士学位,1983年获得了美国卡内基梅隆大学计算机科学博士学位,毕业后到IBM工作,设计IBM第一代工作站NeWS系统,但不受重视。后来转至Sun公司,1990年,与Patrick,Naughton和Mike Sheridan等人合作“绿色计划”,后来发展一套语言叫做“Oak”,后改名为Java。

SUN (Stanford University Network斯坦福大学网络公司)

 

1995年5月23日,Java语言诞生

1996年1月 JDK1.0

1997年2月 JDK1.1

1998年12月JDK1.2(将Java分成了J2SE,J2EE,J2ME)

2000年5月 J2SE1.3

2002年2月 J2SE1.4

2004年10月 JDK1.5(改名JavaSE5.0,JavaEE,JavaME)

2006年12月JavaSE6.0 2009年04月20日,甲骨文(Oracle)74亿美元收购Sun。

2011年7月 JavaSE7.0

2014年3月 JavaSE8.0

1.2 Java语言平台

1.3 Java语言跨平台原理

平台:指的是操作系统(Windows,Linux,Mac)

跨平台:Java程序可以在任意操作系统上运行,一次编写到处运行

原理:实现跨平台需要依赖Java的虚拟机 JVM (Java Virtual Machine)

1.4 JVM   JRE   JDK说明

 A:什么是JVM?

  JVM是java虚拟机(JVM Java Virtual Machine),java程序需要运行在虚拟机上,不同平台有自己的虚拟机,因此java语言可以跨平台

 B:什么是JRE?

  java运行环境:Java Runtime Environment

  包括Java虚拟机(JVM Java Virtual Machine)和Java程序所需的核心类库等如果想要运行一个开发好的Java程序,计算机中只需要安装JRE即可。

     JRE:JVM+类库。 

 C:什么是JDK?

  java开发工具包:Java Development Kit 

  JDK是提供给Java开发人员使用的,其中包含了java的开发工具,也包括了JRE。所以安装了JDK,就不用在单独安装JRE了。

 其中的开发工具:编译工具(javac.exe)  打包工具(jar.exe)等

    JDK:JRE+JAVA的开发工具。

 D:为什么JDK中包含一个JRE?

  为什么JDK中包含一个JRE呢?

  开发完的程序,需要运行一下看看效果。

 E:JDK,JRE,JVM的作用和关系

  JDK包含JRE 和开发工具包

  JRE 包含 核心类库和JVM

 简单而言:使用JDK开发完成的java程序,交给JRE去运行

1.5 常用dos命令

打开控制台:win+r,然后cmd回车

常用命令

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

  cd (change directory)改变指定目录(进入指定目录)  

    进入 cd 目录;cd 多级目录 

    回退 cd.. ;cd\

  cls : (clear screen)清屏

  exit : 退出dos命令行

1.6 helloworld案例

1.6.1 编写代码步骤:

首先定义一个类:public class 类名

在类定义后加上一对大括号:{}

在大括号中间添加一个主(main)方法/函数:public static void main(String [] args){ }

在主方法的大括号中间添加一行输出语句:System.out.println(“HelloWorld”);

完整代码如下:

public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("HelloWorld");
    }
}

1.6.2 运行代码步骤:

 在命令行模式中,输入javac命令对源代码进行编译,生成字节码文件

  javac 源文件名.java

 编译完成后,如果没有报错信息,输入java命令对class字节码文件进行解释运行,执行时不需要添加.class扩展名

 最后打印的结果: HelloWorld

1.6.3 常见问题有:

 A:找不到文件

  a:文件扩展名隐藏导致编译失败

   b:文件名写错了

 B:单词拼写问题

  a:class写成Class

  b:String写成string

   c:System写成system

    d:main写成mian

 C:括号匹配问题

   a:把类体的那对大括号弄掉一个

   b:把方法体的那对大括号弄掉一个

   c:把输出语句的那对小括号弄掉一个

  D:中英文问题

    a:提示信息:错误: 非法字符: \????的格式

   注意:java编程中需要的基本上都是英文字符

 

2 环境变量

2.1 环境变量配置

 

2.2 注释

注释概述:

  用于解释说明程序的文字

Java中注释分类:

  单行注释 格式: //注释文字

  多行注释 格式: /* 注释文字 */

  文档注释 格式:/** 注释文字 */

 注释的作用 解释说明程序,提高程序的阅读性

2.3 关键字

关键字概述

  被Java语言赋予特定含义的单词

关键字特点

  组成关键字的字母全部小写

  常用的代码编辑器,针对关键字有特殊的颜色标记,非常直观,所以我们不需要去死记硬背,在今后的学习中重要的关键字也会不断的出来。

  

  

语法格式

3.1 常量

3.1.1 常量概述

  在程序执行的过程中,其值不可以发生改变的量

3.1.2 常量分类

  字符串常量 用双引号括起来的内容(“HelloWorld”)

  整数常量 所有整数(12,-23)

  小数常量 所有小数(12.34)

  字符常量 用单引号括起来的内容(‘a’,’A’,’0’)

  布尔常量 较为特有,只有true和false

  空常量 null(数组部分讲解)

/*
    常量:在程序执行的过程中,其值不可以发生改变的量
    
    常量分类:
        A:字符串常量    "HelloWorld"
        B:整数常量        12,-23
        C:小数常量        12.34
        D:字符常量        'a','0'
        E:布尔常量        true,false
        F:空常量        null(后面讲解)
*/
public class ChangLiang {
    public static void main(String[] args) {
        //字符串常量
        System.out.println("HelloWorld");
        
        //整数常量
        System.out.println(12);
        System.out.println(-23);
        
        //小数常量
        System.out.println(12.34);
        
        //字符常量
        System.out.println('a');
        System.out.println('0');
        
        //布尔常量
        System.out.println(true);
        System.out.println(false);
    }
}

3.2 变量

3.2.1 变量概述

  在程序执行的过程中,在某个范围内其值可以发生改变的量

  从本质上讲,变量其实是内存中的一小块区域

3.2.2 变量定义格式

  数据类型 变量名 = 初始化值;

  注意:格式是固定的,记住格式,以不变应万变

3.2.3 变量图解

 

3.3 数据类型

3.3.1 计算机存储单元

变量是内存中的小容器,用来存储数据。那么计算机内存是怎么存储数据的呢?无论是内存还是硬盘,计算机存储设备的最小信息单元叫“位(bit)”,我们又称之为“比特位”,通常用小写的字母b表示。而计算机最小的存储单元叫“字节(byte)”,通常用大写字母B表示,字节是由连续的8个位组成。

除了字节外还有一些常用的存储单位,大家可能比较熟悉,我们一起来看看:

  1B(字节) = 8bit

  1KB = 1024B

  1MB = 1024KB

  1GB = 1024MB

  1TB = 1024GB

 

3.3.2 数据类型概述和分类

 A:为什么有数据类型

   Java语言是强类型语言,对于每一种数据都定义了明确的具体数据类型,在内存中分配了不同大小的内存空间

 B:Java中数据类型的分类

   基本数据类型

   引用数据类型 

3.4 标识符

3.4.1 标识符概述

 A 作用

  给包,类,方法,变量等起名字

 B 组成规则

  由字符,下划线_,美元符$组成

  这里的字符采用的是unicode字符集,所以包括英文大小写字母,中文字符,数字字符等。

  注意事项:

    1.不能以数字开头

    2.不能是Java中的关键字

 C : 命名原则:见名知意

   a包

     最好是域名倒过来,要求所有的字母小写 

   b类或者接口

     如果是一个单词首字母大写

     如果是多个单词每个单词首字母大写(驼峰标识) 

   c方法或者变量

     如果是一个单词全部小写

     如果是多个单词,从第二个单词首字母大写 

   d常量

     如果是一个单词,所有字母大写

     如果是多个单词,所有的单词大写,用下划线区分每个单词 

/*
    标识符:就是给包,类,方法,变量起名字的符号。
    
    组成规则:
        A:unicode字符
            数字字符,英文大小写,汉字(不建议使用汉字)
        B:下划线_
        C:美元符$
        
    注意事项
        A:不能以数字开头
        B:不能是java中的关键字
        
    常见命名规则:
        A:基本要求
            见名知意
        B:常见的命名
            a:包(其实就是文件夹,用于对类进行管理)
                全部小写,多级包用.隔开
                举例:com,com.accp
            b:类
                一个单词首字母大写
                    举例:Student,Car
                多个单词每个单词的首字母大写
                    举例:HelloWorld
            c:方法和变量
                一个单词首字母小写
                    举例:age,show()
                多个单词从第二个单词开始每个单词的首字母大写
                    举例:maxAge,getAge()
*/
public class BiaoShiFu {
    public static void main(String[] args) {
        //定义变量
        //数据类型 变量名 = 初始化值;
        int a = 10;
        
        //正确
        int b2 = 20;
        //错误
        //int 2b = 30;
        
        //不能是java中的关键字
        //错误
        //int public = 40;
    }
}

3.5 定义变量

3.5.1 基本数据类型变量的定义和使用

  变量的定义格式:

    数据类型 变量名 = 初始化值;

  基本数据类型:

    byte,short,int,long,float,double,char,boolean

  注意:

    整数默认是int类型,定义long类型的数据时,要在数据后面加L。

    浮点数默认是double类型,定义float类型的数据时,要在数据后面加F。

public class VariableDemo {
    public static void main(String[] args) {
        //定义byte类型的变量
        byte b = 10;
        System.out.println(10);
        System.out.println(b);
        
        //定义short类型的变量
        short s = 100;
        System.out.println(s);
        
        //定义int类型的变量
        int i = 10000;
        System.out.println(i);
        
        //定义long类型的变量
        long l = 1000000000000000L;
        System.out.println(l);
        
        //定义float类型的变量
        float f = 12.34F;
        System.out.println(f);
        
        //定义double类型的变量
        double d = 12.34;
        System.out.println(d);
        
        //定义char类型的变量
        char c = 'a';
        System.out.println(c);
        
        //定义boolean类型的变量
        boolean bb = false;
        System.out.println(bb);
    }
}

3.5.2 变量定义的注意事项

/*    
    变量定义注意事项:
        1:变量未赋值,不能直接使用
        2:变量只在它所属的范围内有效
            变量属于它所在的那对大括号
        3:一行上可以定义多个变量,但是不建议
*/
public class VariableDemo2 {
    public static void main(String[] args) {
        //定义变量
        int a = 10;
        System.out.println(a);
        
        int b;
        b = 20; //变量在使用前赋值都是可以的
        System.out.println(b);
        
        
        {
            int c = 100;
            System.out.println(c);
        }
        //System.out.println(c);
        
        /*
        int aa,bb,cc;
        aa = 10;
        bb = 20;
        cc = 30;
        */
        
        /*
        int aa = 10;
        int bb = 20;
        int cc = 30;
        */
        
        int aa=10,bb=20,cc=30;
    }
}

3.6 数据类型转换

3.6.1 隐式数据类型转换

  取值范围小的数据类型与取值范围大的数据类型进行运算,会先将小的数据类型提升为大的,再运算

 

/*
    +:是一个运算符,做加法运算的。
    我们在做运算的时候,一般要求参与运算的数据类型必须一致。
    
    类型转换:
        隐式转换
        强制转换
        
    隐式转换    
        byte,short,char -- int -- long -- float -- double
*/
public class TypeCastDemo {
    public static void main(String[] args) {
        //直接输出了运算的结果
        System.out.println(3 + 4);
        
        //定义两个int类型的变量
        int a = 3;
        int b = 4;
        int c = a + b;
        System.out.println(c);
        
        //定义一个byte类型,定义一个int类型
        byte bb = 2;
        int cc = 5;
        System.out.println(bb + cc);
        
        //我能不能不直接输出,用一个变量接收呢?
        //用变量接收,这个变量应该有类型
        //可能损失精度
        //byte dd = bb + cc;
        int dd = bb + cc;
        System.out.println(dd);
    }
}

3.6.2 强制类型数据转换

 强制转换的格式

  b = (byte)(a + b); 

 强制转换的注意事项

  如果超出了被赋值的数据类型的取值范围得到的结果会与你期望的结果不同 

/*
    强制转换:
        目标类型 变量名 = (目标类型) (被转换的数据);
        不建议强制转换,因为会有精度的损失。
*/
public class TypeCastDemo2 {
    public static void main(String[] args) {
        int a = 3;
        byte b = 4;
        int c = a + b;
        //byte d = a + b;
        byte d = (byte) (a + b);
    }
}

 

 

转载于:https://www.cnblogs.com/chao123/p/10217055.html

相关文章:

  • 苹果下调财收预期,致使股价大跌近10%,万亿身家缩水近一半
  • 图像的等距变换,相似变换,仿射变换,射影变换
  • 解决NoclassDefFoundError 打印一个类的java路径
  • 从Lucene到Elasticsearch:从 Lucene 到 ElasticSearch
  • 【文文殿下】ExBSGS
  • [HNOI2008]Cards
  • Facebook 2018 年度开源回顾:新增开源项目 153 个
  • 游戏开发中的抛物线(贝塞尔曲线)
  • Vue UI框架库开发介绍
  • MultipartFile 不能直接 转成File对象
  • react native 包学不包会系列--react native开发基础知识
  • 老鼠的商议
  • (轉貼) 寄發紅帖基本原則(教育部禮儀司頒布) (雜項)
  • Silverlight 1.1架构图
  • (原創) 如何將struct塞進vector? (C/C++) (STL)
  • 《Javascript高级程序设计 (第三版)》第五章 引用类型
  • ECMAScript6(0):ES6简明参考手册
  • Next.js之基础概念(二)
  • PHP的Ev教程三(Periodic watcher)
  • puppeteer stop redirect 的正确姿势及 net::ERR_FAILED 的解决
  • Redis中的lru算法实现
  • thinkphp5.1 easywechat4 微信第三方开放平台
  • Vue实战(四)登录/注册页的实现
  • 翻译:Hystrix - How To Use
  • 汉诺塔算法
  • 机器学习学习笔记一
  • 十年未变!安全,谁之责?(下)
  • 微信小程序上拉加载:onReachBottom详解+设置触发距离
  • 为物联网而生:高性能时间序列数据库HiTSDB商业化首发!
  • 小而合理的前端理论:rscss和rsjs
  • ![CDATA[ ]] 是什么东东
  • "无招胜有招"nbsp;史上最全的互…
  • #快捷键# 大学四年我常用的软件快捷键大全,教你成为电脑高手!!
  • #每日一题合集#牛客JZ23-JZ33
  • #数学建模# 线性规划问题的Matlab求解
  • $.ajax()
  • (1)bark-ml
  • (1综述)从零开始的嵌入式图像图像处理(PI+QT+OpenCV)实战演练
  • (30)数组元素和与数字和的绝对差
  • (4)通过调用hadoop的java api实现本地文件上传到hadoop文件系统上
  • (8)STL算法之替换
  • (附源码)springboot宠物医疗服务网站 毕业设计688413
  • (附源码)ssm高校社团管理系统 毕业设计 234162
  • (离散数学)逻辑连接词
  • (十六)串口UART
  • .desktop 桌面快捷_Linux桌面环境那么多,这几款优秀的任你选
  • .Net - 类的介绍
  • .NET MVC之AOP
  • .NET 设计模式—适配器模式(Adapter Pattern)
  • .net 生成二级域名
  • .NET 实现 NTFS 文件系统的硬链接 mklink /J(Junction)
  • .NET 中让 Task 支持带超时的异步等待
  • .Net接口调试与案例
  • .NET中GET与SET的用法
  • @reference注解_Dubbo配置参考手册之dubbo:reference