热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Java基础01_基础语法

###Java入门####1、Java语言特性简单易用面向对象安全性高多线程跨平台####2、跨平台通过Java虚拟机(JVM)####3、JVM、JRE、JD

Java基础01_基础语法

Java入门

1、Java语言特性

  1. 简单易用
  2. 面向对象
  3. 安全性高
  4. 多线程
  5. 跨平台

2、跨平台

通过Java虚拟机(JVM)

3、JVM、JRE、JDK

  1. JVM——Java虚拟机
  2. JRE——Java运行环境
  3. JDK——Java开发工具包
  4. 关系:JDK包含JRE,JRE包含JVM和核心类库

4、Java编译过程

  1. Hello.java编写代码
  2. 编译:javac——Hello.java 编译成JVM能识别的代码
  3. JVM运行Hello.class
  4. 执行结果

Java基础语法

1、关键字和保留字

  1. 关键字:有特定含义和特殊用途
    • 全部小写
    • 不能作为标识符
  2. 保留字:const、goto

2、标识符

  1. 含义:用来给类、对象、方法、变量、接口、和自定义数据类型命名的。
  2. 命名规则
    • 由字母、数字、下划线、美元符号组成,且首字母不能是数字

3、常量和变量

  1. 常量(用final定义):整数常量、小数常量、布尔型常量、字符常量、字符串常量、null常量
  2. 变量:值可以变,指代某一事物
  3. 变量声明:数据类型 变量名 = 初始化值;
    • 1.先声明后赋值:int age;age = 10;
    • 2.声明同时赋值:int age = 0;
  4. 局部变量:方法内部定义,必须初始化。
  5. 全局变量(成员变量):方法外部,类内部。不初始化,有默认值。
  6. 注意:变量使用时有作用域:
	int x = 20;
    {
    int y = 20;
    }
    System.out.println(x);//成功
    System.out.println(y);//失败,超作用范围`

4、数据类型

  1. 基本数据类型(简单数据类型):
    • byte 一个字节[-127,128]
    • short 两个字节[-32768,32767]
    • int 四个字节[-231,231-1]
    • long八个字节[-263,263-1]
    • float四个字节[-3.403E38,3.403E38]
    • double八个字节[-1.298E308,1.798E308]
    • char[0,65535]
    • boolean
    • String不属于数据类型
  2. 复合数据类型(引用类型)
    • 数组
    • 接口
  3. 简单数据类型转换
    • 强制转换:高——>低
    • 自动转换:低——>高

5、运算符

  1. 赋值运算符:=

  2. 算数运算符:+,-,*,/,%,++,--

    • a++:先使用后加1,累加的结果不参与本次运算(使用原始变量运算);++a:先加1再使用,a=a+1,累加的结果需要参与本次运算;
int a = 10;
int b = 10;
int c = (a++) + b;
System.out.println(c);//c=20
System.out.println(a);//a=11
  1. 关系运算符:>,<,>=,<=,==,!=
  2. 逻辑运算符:!,&,|,&&,||,^(异或)
    • &:有false就false;|:有true就true;^:相同为false,不同为true
    • ||和&&的区别:||(短路或)当左边表达式为true时,右边不参与运算;&&(短路与)当左边表达式为false时,右边不参与运算
  3. 位运算符:补码
  4. 移位运算符
  5. 三目运算符:变量=判断条件?表达式1:表达式2

6、方法

  1. 方法的创建
访问修饰符[修饰符]返回值数据类型 方法名([参数类型 参数名]){
方法体;
[return 返回值;]//如果没有返回值,用void关键字代替
}
  • 访问修饰符:public、protect、default、private
  1. 方法的调用

    1. 有明确返回值类型的方法调用:
      • 单独调用
      • 输出调用
      • 赋值调用
    2. 没有明确返回值类型的方法调用:
      • 单独调用
  2. return关键字
    如果有返回值定义,就必须有return语句,返回值和返回值类型兼容的数据。
    作用:1.返回数据给方法的调用者;2.结束一个方法

  3. 方法重载

    • 方法名必须相同,参数(个数、类型、顺序)必须不同
    • 与返回值无关:如void method(int x)与int method(int y)不是方法重载
    • 与参数名无关:如method(int x)与method(int y)不是方法重载

7、数组

  1. 数组:一组数据的集合
    • 可以存放任意类型元素,但同一数组里存放的元素类型必须一致
    • 数组也是一种复合数据类型,以对象的形式存在
    • 数组的元素可以是简单数据类型,也可以是复合数据类型
  2. 数组的特征:
    • Java语言是强类型语言:一个数组里只能存储一种数据类新的数据
    • Java语言是静态的:Java中的数组一旦被初始化后,它的长度是固定的。即使把某个数组的元素数据清空,它所占空间仍被保留,依然属于该数组,数组长度不变
    • 数组是引用数据类型。引用的本质是指针,指针也是变量,只不过存储的是内存的地址
  3. 数组的声明:定义数组时,不能对数组指定长度,在数组创建时指定
    • type[] arr_name;
    • type arr_name[];
  4. 数组的定义及初始化
    1. 静态初始化:
      • 类型[] 数组名 = new 类型[]{元素,元素...};int[] a = new int {1,2,3,4};
      • 类型[] 数组名 = {元素,元素...};int[] a = {1,2,3,4};
    2. 动态初始化:类型[] 数组名 = new 数据类型[数组长度];int[] scoreArr = new int[100];int[] array;array = new int[5];
  5. 数组的遍历
    • 普通for循环
int[ ] a = {23,100,32,43};
for (int i= 0; i
- 增强for循环
for (int x : a) {
      System.out.println(x);
}
  1. 数组异常

    • 数组越界异常ArrayIndexOutOfBoundsException
    • 空指针异常NullPointerException
  2. 二维数组:每一个元素都是一维数组

    • 数据类型[][] 数组名 = new 数据类型[一维数组个数][一维数组中元素个数];
    • 数据类新[][] 数组名 = new 数据类型[一维数组个数][];
    • 数据类型[][] 数组名 = {{元素值1,元素值2,...},{元素值1,元素值2,...}...};
  3. 二维数组遍历:

for(int i=0;i
  1. 多维数组
    当使用new来创建多维数组时,不必指定每一维的大小,而只需要指定最左边的维的大小。
    int a[][] = new int[4][5];
    int b[][] = new int[3][];

  2. 数组类型

    • 简单数据类型
    • 引用数据类型(复合数据类型)

推荐阅读
  • 从 .NET 转 Java 的自学之路:IO 流基础篇
    本文详细介绍了 Java 中的 IO 流,包括字节流和字符流的基本概念及其操作方式。探讨了如何处理不同类型的文件数据,并结合编码机制确保字符数据的正确读写。同时,文中还涵盖了装饰设计模式的应用,以及多种常见的 IO 操作实例。 ... [详细]
  • 本文详细介绍了Java编程语言中的核心概念和常见面试问题,包括集合类、数据结构、线程处理、Java虚拟机(JVM)、HTTP协议以及Git操作等方面的内容。通过深入分析每个主题,帮助读者更好地理解Java的关键特性和最佳实践。 ... [详细]
  • 本文总结了Java程序设计第一周的学习内容,涵盖语言基础、编译解释过程及基本数据类型等核心知识点。 ... [详细]
  • 本文详细介绍了Java中org.neo4j.helpers.collection.Iterators.single()方法的功能、使用场景及代码示例,帮助开发者更好地理解和应用该方法。 ... [详细]
  • 2023年京东Android面试真题解析与经验分享
    本文由一位拥有6年Android开发经验的工程师撰写,详细解析了京东面试中常见的技术问题。涵盖引用传递、Handler机制、ListView优化、多线程控制及ANR处理等核心知识点。 ... [详细]
  • 并发编程:深入理解设计原理与优化
    本文探讨了并发编程中的关键设计原则,特别是Java内存模型(JMM)的happens-before规则及其对多线程编程的影响。文章详细介绍了DCL双重检查锁定模式的问题及解决方案,并总结了不同处理器和内存模型之间的关系,旨在为程序员提供更深入的理解和最佳实践。 ... [详细]
  • 本文作者分享了在阿里巴巴获得实习offer的经历,包括五轮面试的详细内容和经验总结。其中四轮为技术面试,一轮为HR面试,涵盖了大量的Java技术和项目实践经验。 ... [详细]
  • 深入解析JVM垃圾收集器
    本文基于《深入理解Java虚拟机:JVM高级特性与最佳实践》第二版,详细探讨了JVM中不同类型的垃圾收集器及其工作原理。通过介绍各种垃圾收集器的特性和应用场景,帮助读者更好地理解和优化JVM内存管理。 ... [详细]
  • 本文介绍了如何通过配置 Android Studio 和 Gradle 来显著提高构建性能,涵盖内存分配优化、并行构建和性能分析等实用技巧。 ... [详细]
  • 深入解析 Apache Shiro 安全框架架构
    本文详细介绍了 Apache Shiro,一个强大且灵活的开源安全框架。Shiro 专注于简化身份验证、授权、会话管理和加密等复杂的安全操作,使开发者能够更轻松地保护应用程序。其核心目标是提供易于使用和理解的API,同时确保高度的安全性和灵活性。 ... [详细]
  • 本文旨在探讨《人月神话》中关于软件开发任务的理解,分析其核心概念和实际应用。书中指出,软件开发的主要目标是构建由抽象实体构成的复杂概念体系,而次要目标则是在时间和空间限制内将其转化为机器语言。 ... [详细]
  • 作者:守望者1028链接:https:www.nowcoder.comdiscuss55353来源:牛客网面试高频题:校招过程中参考过牛客诸位大佬的面经,但是具体哪一块是参考谁的我 ... [详细]
  • 本文详细介绍了如何准备和安装 Eclipse 开发环境及其相关插件,包括 JDK、Tomcat、Struts 等组件的安装步骤及配置方法。 ... [详细]
  • Linux系统中Java程序Too Many Open Files问题的深入解析与解决方案
    本文详细分析了在Linux环境下运行的Java应用程序中可能出现的“Too many open files”异常现象,探讨其成因及解决方法。该问题通常出现在高并发文件访问或大量网络连接场景下,对系统性能和稳定性有较大影响。 ... [详细]
  • 深入理解Java字符串池机制
    本文详细解析了Java中的字符串池(String Pool)机制,探讨其工作原理、实现方式及其对性能的影响。通过具体的代码示例和分析,帮助读者更好地理解和应用这一重要特性。 ... [详细]
author-avatar
缪宇驰
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有