• JAVA基础语法


    Java基础语法

    第一章:基础常识

    常用的DOS命令

    1567907407728

    JAVA语言概述

    1. 语言特性

      由C和C++继承了许多成分,变量声明、操作符、参数传递和控制流程等完全相同。

      纯粹的面向对象

      舍弃了指针(以引用取代)、运算符重载、多重继承等

      增加了垃圾回收、泛型编程、类型安全的枚举、不定长参数和自动装/拆箱

      易学

      分布式

      健壮:丢弃指针,自动回收(免去了程序员忘记回收的问题)

      开源社区成熟

      解释型

      原生多线程

      1567908311630

    2. JAVA技术平台

      1567908127218
      SE:俗称核心JAVA

      JAVA学习流程

      Java是一个统称 包含javase 与Javaee(还有一个几乎没人用的javame) 是Sun公司,也就是现在的Oracle(把Sun给收购了)公司的一门面向对象的开源语言。
      javase 是java的一部分,也是基础的基础,主要是用来做桌面程序的,就像我们平时下载用的那些软件,也就是楼上说的那些客户端程序。但是用Java做软件的话,前途不明朗。
      jsp 是一种动态的页面,运行于服务器(tomcat、 jboss等),里面可以嵌套有html 或javase、Javascript的代码。
      至于javaweb那就大了,它包含了以上所有的东西,并且还有一些框架(例如 spring struts hibernate ibatis 。。。。)关于开发javaweb的框架大约有几百种之多(当然平常你掌握几种就可以了,其他的框架,用到了,现学就可以了)。
      要想学好Javaweb,Javase这个基础的基础必须要打好。尤其是Javase里面集合,io流,网络。。。等这几大块是重点的重点。
      至于学习顺序 Javase --》jsp --》javaweb。
      看到jsp的时候,可以写一些页面的东西,算是基本的web程序吧。

    3. JAVA核心机制

      1567908347296

    4. 垃圾回收(GC)

      1567908441592
      C++手动回收的优点:能够在内存不使用时快速回收,准确高效

      缺点:容易失误,出现bug

      JAVA使用系统级线程自动检测回收,优点:自动,不会出现bug

      缺点:回收不及时(在硬件水平较高的现在,可以忍受:宁可回收不及时,但是一定要回收

    5. 题外话:Windows x86是32位系统,x64是64位系统

      狭义的x86架构,指只支持32位的intel/AMD/VIA的CPU,并向下兼容16位(实模式);

      狭义的x64架构,指的是支持32位和64位的intel/AMD CPU,指令集与x86兼容,并向下兼容16位(实模式),目前绝大多数民用CPU和服务器CPU都是这样的;

      狭义的ia64架构,指的是安腾系列的CPU,虽然指令集也是64位的,但不兼容32位,intel独有的,这种CPU比较少见,基本不生产了,近似于淘汰的状态;

      广义的x86架构,泛指支持x86和x64架构intel、amd的CPU,但不包含ia64(安腾)。

      目前市面上能看到的E5没有安腾架构的(安腾是独立发布的),绝大多数E5都支持x64

    6. 正规的开发工作中,不同的任务对JAVA版本的要求不一样,同时进行多个任务时版本不同会出问题:使用压缩版jdk,根据情况解压不同版本使用

      1567909123674
      换开发版本时,在环境变量中改JAVA_HOME即可(将其改为对应版本的文件夹)所以要用压缩版

    7. JDK与JRE

      1567909344788

    8. 编译过程

      1567909443871
      .java->.class->.exe

    9. 注意代码规范和可读性!!

    10. Java语言的一些要点

      • Main方法的固定书写格式:

        public static void main(String[]args){...}

      • 严格区分大小写

      • 语句以;结束

    11. 常见问题及解决办法

      1567909753882
      1567909836101
      声明为public的主类必须与文件名一致

    12. 注释

      • 注释类型

        1567909961888
        1567910064308
        @author:写作者

        @version:写版本

    第二章:JAVA基本语法

    JAVA基础

    1. 保留字

      1567910972518
      尽量不要在编程中使用保留字

    2. 标识符

      • 标识符要求

        1567911137606
        数字不可以开头

      • 命名规范(很重要)

        1567911439354
        总的来说可以分为四类:

        1. 包名所有字母小写常
          2.常量名所有字母大写,单词间下划线连接
          3.类名、接口名使用大驼峰命名法
          4.变量名、方法名使用小驼峰命名法
    3. 变量

      • 保存在内存中

      • JAVA中的每个变量都必须先声明后使用

      • 变量在一对{}中有效

      • 数据类型

        1567912879317
        1567912913552
        声明long型常量需要后加'l'或'L',float型后加'f'或'F'

        1567912998582

      • Boolean类型:只能使用true或false,不能用0或者非0来定义

      • 引用类型,初始化时都可以初始化为null

      • 字符串值不可变

        1567913231499
        这里的s0和s1、s2都引用了同一个字符串同样的字符串只会储存一遍(注意如s2这样的也是一样的)

    开发环境(Eclipse)

    1. Workspace:利用工作空间维护不同项目
    2. System.out.printLn()一般用于日志的输出

    数据类型

    1. 数据类型转换

      1567913751137
      要点:1. 计算时向上转换

      ? 2.byteshortchar均转换为int

      ? 3.任何基本类型与字符串连接,均转为字符串

      运算符

    2. 自增自减

    1567913926216
    自增自减运算符区分

    符号在前:先运算再取值

    在后:先取值再运算

    1. 取模
    • 模数为负时,负号可忽略;但被模数为负则不可忽略,应正常运算
    1. char类型与string类型的区分

    单引号引起来的是字符(char),双引号引起来的是字符串(string)

    1567914404023
    第一个,char在+运算符中转换为了int,做了数学运算

    第二个因为第一个是string,在+运算符中做了向上的数据类型转换,转换为了string,做了字符串拼接

    1. 拓展赋值运算符

    1567914543986
    除了加减,乘除、取模其实都有拓展赋值运算符的!

    1. 1567914816869
      这是个之前没有注意过的点,对变量进行运算时要考虑到其类型的变化,否则会报错(可能是JAVA的特性?)

    所以,自增的时候用自增运算符比用加法语句更好

    1. 逻辑运算符

    1567915049966
    1567915138507

    • 异或:相同是为false,不相同时为true

    • 1567915394731
      JAVA中判断条件只能是单向的

    • 逻辑与(&)和短路与(&&)的区别:

      1567915453869
      之前在C++中常用的都是短路运算符

      在不需要逻辑运算两边都参与运算的时候(也就是绝大多数时候),尽量使用短路运算符&&和||

    1. 位运算符

      用的比较少其实

      有符号的右移时看首尾,是0补0,是1补1

      无符号均补0

      1567915790933
      解释:

      1567915823985

    2. 三目运算符

      (条件表达式)?表达式1:表达式2;

      如果条件表达式为true,则执行表达式1,否则执行表达式2

    3. 运算符的优先级

      1567915945055

    数组

    1. 一位数组的声明方式:

      int a[];或者int[] a;

    2. 初始化:

      1. 动态初始化
      • int[] arr=new int[3];

      • arr[i]=x;i=0,1,2

         2. 静态初始化
        
      • int a[]=new int[]{3,9,8};

      • int[] a={3,9,8};
        注:对于int[] a和int a[]这两种方式,上面的初始化方法都是可以的

    3. ? 数组初始化后,每个数组都有一个length属性指明它的长度(和C++不同,可以直接调用属性获得长度)

    4. 使用动态初始化时,数组的元素默认值是0,对象的默认类型为null

    5. 多维数组

      相比C++,有了原生支持的多维数组

      1567924508880
      可以只定义n-1维的大小,留下一个未定义的维度

    6. 特殊写法:

      int[] x,y[];这里的x是一维数组,而y是二维的(有点反直觉2333)

    7. 总结:一维数组和二维数组的各种写法

      1. 一维数组:

        1. int[]x
      2. int x[]

      3. 二维数组:

        1. int[][][] []y

        2. int[]y[]

        3. int y[] []

          反正就是要凑够两个括号,这两个括号怎么搁都是可以的

    1. 使用包的必要性
      • 解决重名问题
      • 便于管理
    2. package中用.表示包的层次(包的概念等同于文件夹的概念,可以有多级)
    3. 可以Import具体的包下的对象
    4. 1567928006428
  • 相关阅读:
    04_远程管理常用命令
    03_文件和目录常用命令
    02_Linux 终端命令格式
    01_常用 Linux 命令的基本使用
    test
    centOS 7 更改root密码
    安装 centos7
    1
    IO模型
    使用git连接到Github
  • 原文地址:https://www.cnblogs.com/jiading/p/11705818.html
Copyright © 2020-2023  润新知