Java教程

【JavaSE】1.语言基础

本文主要是介绍【JavaSE】1.语言基础,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!


语言基础——入门、常量

入门

  • 工程文件.java
    • javac编译为.class字节码文件(这是jvm的可执行文件,类似于win系统下的.exe文件)
    • .class文件的优点:跨平台
  • JVM内存
    • Stack(存局部变量)、Heap(Java对象)、方法区(字节码文件)
    • 本地方法栈、寄存器(Register)
  • 程序的运行:
    • Stack栈:main方法进入:压栈
    • Heap堆:new新对象就放在堆内存里面

Package

  • 包名:com.hzyc.demo(包名统一使用单数形式,包下的类名可以有复数)
    • src:存放源码,包含很多package;package:存放的文件夹
    • 定位:package com.hzyc.demo(必定在首行)
    • 导包:import com.google. _(_代表全部导入)
  • java. Lang包、java.io包是java自带的,包括了很多基础功能
    • java.lang不需要导包(Math、String)
    • java.util……都需要导包
  • 命名:package全小写(com.hzyc.demo)、类(首字母大写)、变量/方法名(第二个单词大写)、常量(纯大写)

常量

  • 基本数据类型(封装在各种类中,有不同的二进制位数)
    • char占16bit,0~65535,480、65A、97a,(大小写互换32)
    • float占32位,(1位符号位,8位2的幂指数位,23位底数位)极限值:2*2^127
    • double占64位(1位符号、11位幂指数位、52位底数位
    • float类型的数据要加浮点型后缀!!!
    • byte占8bit,(-128~127,0为正整数)
    • int占16bit,(范围:-215-215-1)
    • 整型:int、byte、short、long
    • 浮点型:double(float
    • 字符型:char、Boolean
  • 引用数据类型
    • 字符串、数组、类、接口、Lambda
  • 常量之外
    • 补码:
    • 变量:必须有名字且赋值,在stack中存在(只在作用域内使用)
    • print中的格式字符串:%d、%o、%x、%c、%f(有小数点的格式)、%s(String)

运算

  • 【类型转换】变量接收的必须是能接收的类型,强转需要提前自己强转完
  • byte/short/char这三种类型在运算的时候,都会被首先提升成为int类型
  • 自加自减
    • 【先加后用】前++,那么变量【立刻马上+1】,然后拿着结果进行使用。
    • 【先用后加】后++,那么首先使用变量本来的数值,【然后再让变量+1】
  • 位运算:|&^~
  • 转型:
    • 小杯饮料倒到大杯里面
    • 但整型和浮点型之间转换会丢失精度。
    • 原数据在造型(cast)的时候精度/长度会损失一部分
    • 自动转型:byte a = 5;(只有整型常数可以实现)
    • 类型的缩小转换必须使用造型
    • 类型的放大转换:直接自动转换
  • 转义字符:
    • \rcarriage return、\nnew line
    • \"\'

循环语句、选择结构

对for循环语句的理解

  • for的执行顺序:①对变量预处理、②{for的body主体}、③继续条件的判断、④步进语句
  • for是while语句的简化版
  • break/continue  
    • 有锚定:跳出带有锚定标记的for循环
    • 不可用在非switch、for、do、while语句中
    • 有锚定:到带有锚定标记的循环继续循环
    • continue:跳过循环剩下的语句,继续下一次循环
    • break:结束循环

方法(函数/功能)

  • 方法有修饰符、返回值类型、方法名称、参数
    • 修饰符(限定访问)
    • void/return:
  • 方法的重载@overload
    • ”一个名字解决各种问题“
  • 做冰淇淋的方法,加入不同原料(不同品牌的巧克力、草莓)

垃圾回收:new了一个新对象/数组,如果没有指针指向,就被回收。

数组

数组声明

  • 引用类型:指向对象/目标地址
    • 赋值赋的是引用对象,而不是数组主体
    • new创建新数组,new后面的东西在Heap堆中,不可更改
    • 看到的只是数组的名字(地址),不是本体。
  • 数组的复制:
  1. System.arraycopy(src,srcPos, newarr, newarrPos, length);【底层为C,共享同一对象】【大数组时效率高】
  2. for循环遍历:不能往小杯子里放,不然出现“ArrayIndexOutOfBoundsException”【最易理解】【适合小数组】
  3. int[] = Arrays.copyOf(arr,arr.length)【可控新数组长度】【代码里面含有System.arraycopy】【效率最低】
  4. newarr = arr.clone();【两个数组还是共享同一对象】
数组的排序
  1. Arrays类的sort()方法:可以直接对数组进行升序排列,返回排号的序给数组本身。
Array.sort(int arr)


Tips

  • 初始默认值default value:实例变量、类变量、数组元素
  • arr.length为数组的属性而非方法,为final int型
这篇关于【JavaSE】1.语言基础的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!