java基础(一)

最近和学长参加一个快手比赛,指定java语言,主要考察多线程处理,大数据文件等,java大三学习过,写过一个java web,写过一个JAVA QQ,都是课程设计,简单的知识还记得,现在针对比赛重新整理学习一番。

最近几天都没有看论文,这星期会看一篇带代码的论文,尽量重构,立下FLAG。

主要分成几部分I/O处理,NIO,多线程。

基本语法

大小写敏感

类名: 首字母大写, 源文件名和类名形同

方法名:应该小写

主方法入口:所有的java程序由public static void main(String[] args) 方法开始执行
包名字一般是域名倒着写,然后加上模块名称,比如京东的包可能叫com.jd.tool

  • 一个类包含:局部变量,成员变量,类变量(类变量声明在类中,方法体之外,必须为static 类型)

源文件声明规则

  • 一个源文件只能有一个public类,多个非public类,名称和public类保持一致
  • 在某个包中,package语句应该在首行
  • 包含import语句放在package语句和类型之间。
  • 包主要是用于对类和接口进行分类

基本数据类型

  • 内置数据类型

    • byte , 8位,有符号数(-128-127)->(-2^7, 2^7-1)
    • short ,16位,有符号数(-215—215-1)
    • int, 32位, 有符号数(-231----231-1)
    • long, 64位,有符号数
    • float, 32位,单精度,不能表示精确的值
    • double,64位,双精度
    • boolean , 1位
    • char, 16位Unicode字符,可以储存任何字符
  • 引用类型

    • 对象数组都是引用类型,引用默认值为null,.
  • 常量

    • 使用final关键字声明常量,通常使用大写字母表示常量 。
  • 自动类型转换

    • 不能对boolean类型进行转换
    • 不能把对象转换为不相关类的对象
    • 容量大到容量小使用强制类型转换
    • 转换可能导致溢出,或者损失精度
    • 浮点数到小数通过舍弃小数得到,不是四舍五入
    • 必须满足转换前的数据类型的位数要低于转换后的数据类型,例如: short数据类型的位数为16位,就可以自动转换位数为32的int类型,同样float数据类型的位数为32,可以自动转换为64位的double类型。
  • 强制类型转换

  • 隐含强制类型转换

变量

  • 局部变量声明在方法、构造方法或者语句块中;在栈上分配,没有默认值,所以局部变量声明后必须经过初始化。
  • 实例变量声明在一个类中,对象创建的时候创建,对象被销毁的时候销毁。实例变量可以直接通过变量名访问。但在静态方法以及其他类中,就应该使用完全限定名:ObejectReference.VariableName。
  • 类变量(静态变量),在类中以 static 关键字声明,但必须在方法之外,静态变量储存在静态存储区。经常被声明为常量,很少单独使用static声明变量。静态变量在第一次被访问时创建,在程序结束时销毁。
  • 类变量被声明为public static final类型时,类变量名称一般建议使用大写字母。如果静态变量不是public和final类型,其命名方式与实例变量以及局部变量的命名方式一致。

修饰符

  • 访问修饰符
    • default (即默认,什么也不写): 在同一包内可见,不使用任何修饰符。使用对象:类、接口、变量、方法。
    • private : 在同一类内可见。使用对象:变量、方法。 注意:不能修饰类(外部类)
    • public : 对所有类可见。使用对象:类、接口、变量、方法
    • protected : 对同一包内的类和所有子类可见。使用对象:变量、方法。 注意:不能修饰类(外部类)
  • 访问控制和继承
    • 父类中声明为 public 的方法在子类中也必须为 public。
    • 父类中声明为 protected 的方法在子类中要么声明为 protected,要么声明为 public,不能声明为 private。
    • 父类中声明为 private 的方法,不能够被继承。
  • 非访问修饰符
    • static 修饰符,用来修饰类方法和类变量。
    • final 修饰符,用来修饰类、方法和变量,final 修饰的类不能够被继承,修饰的方法不能被继承类重新定义,修饰的变量为常量,是不可修改的。
    • abstract 修饰符,用来创建抽象类和抽象方法。
    • synchronized 和 volatile 修饰符,主要用于线程的编程。

Number&Math类

  • java为每个内置数据类型提供了对应的包装类
  • 所有的包装类**(Integer、Long、Byte、Double、Float、Short)**都是抽象类 Number 的子类。
  • java Math 包含了数学的属性和方法,方法都被定义为Static类型,通过Math类可以在主函数直接调用。

在这里插入图片描述

java Character类

    - 方法:isLetter(), isDigit(), isWhitespace(), isUpperCase(), isLowerCase(), toUpperCase(), toLowerCase(), toString()

String 类

  • String 类是不可改变的,所以你一旦创建了 String 对象,那它的值就无法改变了,如果需要对字符串做很多修改,那么应该选择使用 StringBuffer & StringBuilder 类
  • 我们知道输出格式化数字可以使用 printf() 和 format() 方法。String 类使用静态方法 format() 返回一个String 对象而不是 PrintStream 对象。String 类的静态方法 format() 能用来创建可复用的格式化字符串,而不仅仅是用于一次打印输出。
  • 方法,参看 Java String API 文档。

Java StringBuffer和StringBuilder类

  • StringBuilder 类在 Java 5 中被提出,它和 StringBuffer 之间的最大不同在于 StringBuilder 的方法不是线程安全的(不能同步访问)。

  • 由于 StringBuilder 相较于 StringBuffer 有速度优势,所以多数情况下建议使用 StringBuilder 类。

  • StringBuffer 方法,append(), reverse, delte, insert, replace

java 数组

  • 二维数组和C++类似,double[] myList = new double[size];

  • 多维数组,可以看成数组的数组,

  • Arrays类类能方便地操作数组,它提供的所有方法都是静态的。

  • fill(), sort(), equals(), binarySearch()

  • Java stream, File, IO

下一篇介绍JAVA io。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值