JAVA教程

JAVA教程,第1张

JAVA教程 第一个java程序
public class HelloWorld {
//所有的 Java 程序由 public static void main(String[] args) 方法开始执行。
    public static void main(String[] args) {
        System.out.println("Hello World");
    }
}

String args[] 与 String[] args 都可以执行,但推荐使用 String[] args,这样可以避免歧义和误读。前一种主要是为了和C++对齐
两个S是都是大写 System 和String syso快捷
一个文件中可有多个类 但是应该和public声明的类保持一致

javac HelloWorld.java
//如果遇到编码问题,我们可以使用 -encoding 选项设置 utf-8 来编译:
//javac -encoding UTF-8 HelloWorld.java 
java HelloWorld 
环境配置—网上更详细

x64 Compressed Archive 是压缩包 一般安

命名规范
  • 所有的标识符都应该以英文字母,美元符( ) 、 或 者 下 划 线 ( ) 开 始 , 注 : )、或者下划线(_)开始,注: )、或者下划线()​开始,注:an是合法的
  • 包名 小写字母
  • 类名:首字母大写,例如 MyFirstJavaClass 。
  • 方法名 首字母小写驼峰式
  • 普通变量 都小写,连字符连接吧
  • 常量 纯大写
  • 如果一个类定义在某个包中,那么 package 语句应该在源文件的首行。
    如果源文件包含 import 语句,那么应该放在 package 语句和类定义之间。如果没有 package 语句,那么 import 语句应该在源文件中最前面。
变量种类

类变量(静态变量)声明在类中,方法体之外,但必须声明为 static 类型
成员变量(非静态变量)属于对象而不属于类
局部变量

Java 枚举

Java 5.0引入了枚举,枚举限制变量只能是预先设定好的值。使用枚举可以减少代码中的 bug。

例如,我们为果汁店设计一个程序,它将限制果汁为小杯、中杯、大杯。这就意味着它不允许顾客点除了这三种尺寸外的果汁。

实例

class FreshJuice {
   enum FreshJuiceSize{ SMALL, MEDIUM , LARGE }
   FreshJuiceSize size;
}
 
public class FreshJuiceTest {
   public static void main(String[] args){
      FreshJuice juice = new FreshJuice();
      juice.size = FreshJuice.FreshJuiceSize.MEDIUM  ;
   }
}
数据类型 基本数据类型

除了Sring是大写

取值范围

对于数值类型的基本类型的取值范围,我们无需强制去记忆,因为它们的值都已经以常量的形式定义在对应的包装类中了。请看下面的例子:

System.out.println(“基本类型:byte 二进制位数:” + Byte.SIZE);
System.out.println(“包装类:java.lang.Byte”);
System.out.println(“最小值:Byte.MIN_VALUE=” + Byte.MIN_VALUE);
System.out.println(“最大值:Byte.MAX_VALUE=” + Byte.MAX_VALUE);
System.out.println();

注 此处开头是大写

默认值

只列出比较特殊的
char ‘u0000’
String (or 任何对象) null
boolean false

需要注意的是局部变量没有默认值,必须指定。编程时候都指定值即可

引用类型

对象、数组都是引用数据类型。
所有引用类型的默认值都是null。
一个引用变量可以用来引用任何与之兼容的类型。
例子:Site site = new Site(“Runoob”)。

自动类型转化

整型、实型(常量)、字符型数据可以混合运算。运算中,不同类型的数据先转化为同一类型,然后进行运算。

转换从低级到高级。

注意事项

  1. 不能对boolean类型进行类型转换
  2. 不同类型的可转化,char可自动类型转换为int(通过ascii码表的值 而非本来的值)
  3. 不能把对象类型转换成不相关类的对象。
  4. 在把容量大的类型转换为容量小的类型时必须使用强制类型转换。
  5. 转换过程中可能导致溢出或损失精度
  6. 浮点数到整数的转换是通过舍弃小数得到,而不是四舍五入
隐含强制类型转换

1、 整数的默认类型是 int。

  1. 小数默认是 double 类型浮点型,在定义 float 类型时必须在数字后面跟上 F 或者 f。
自动装箱,拆箱

比如当用到数字长度等属性时,需要对象类。如toStrng等方法

Integer x = 5;

String本身就是一个对象
char和Character 不是简单的大写首字母

String类----比较特殊 单独拆出来

String本身就是一个对象

两种创建方式区别
String str = "Runoob";
String str2=new String("Runoob");

String s1 = "Runoob";              // String 直接创建
String s2 = "Runoob";              // String 直接创建
String s3 = s1;                    // 相同引用
String s4 = new String("Runoob");   // String 对象创建
String s5 = new String("Runoob");   // String 对象创建

注意:String 类是不可改变的,所以你一旦创建了 String 对象,那它的值就无法改变了。如果需要对字符串做很多修改,那么应该选择使用 StringBuffer & StringBuilder 类。

+连接字符串
length()输出长度
格式化字符串

System.out.printf("浮点型变量的值为 " +
                  "%f, 整型变量的值为 " +
                  " %d, 字符串变量的值为 " +
                  "is %s", floatVar, intVar, stringVar);
你也可以这样写

String fs;
fs = String.format("浮点型变量的值为 " +
                   "%f, 整型变量的值为 " +
                   " %d, 字符串变量的值为 " +
                   " %s", floatVar, intVar, stringVar);
Java StringBuffer 和 StringBuilder 类

当对字符串进行修改的时候,需要使用 StringBuffer 和 StringBuilder 类。

和 String 类不同的是,StringBuffer 和 StringBuilder 类的对象能够被多次的修改,并且不产生新的未使用对象。

在使用 StringBuffer 类时,每次都会对 StringBuffer 对象本身进行 *** 作,而不是生成新的对象,所以如果需要对字符串进行修改推荐使用 StringBuffer。

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

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

        StringBuilder sb = new StringBuilder(10);
        sb.append("Runoob..");

可自动扩容

转义字符

Java语言支持一些特殊的转义字符序列。

符号 字符含义
n 换行 (0x0a)
r 回车 (0x0d)
f 换页符(0x0c)
b 退格 (0x08)
空字符 (0x0)
s 空格 (0x20)
t 制表符
" 双引号
’ 单引号
反斜杠
ddd 八进制字符 (ddd)
uxxxx 16进制Unicode字符 (xxxx)

java修饰符----一般关注private和public即可 分类

访问修饰符
非访问修饰符

默认访问修饰符

变量和方法:default
接口-变量都隐式声明为 public static final,
接口-方法默认情况下访问权限为 public。

访问控制和继承

请注意以下方法继承的规则:

  • 父类中声明为 public 的方法在子类中也必须为 public。
  • 父类中声明为 protected 的方法在子类中要么声明为 protected,要么声明为 public,不能声明为 private。
  • 父类中声明为 private 的方法,不能够被子类继承。
增强型for循环
int [] numbers = {10, 20, 30, 40, 50};
      for(int x : numbers ){
         System.out.print( x );
      }
Java Math 类

Java 的 Math 包含了用于执行基本数学运算的属性和方法,如初等指数、对数、平方根和三角函数。

Math 的方法都被定义为 static 形式,通过 Math 类可以在主函数中直接调用。

数组 数组作为函数的返回值
public static int[] reverse(int[] list) {
  int[] result = new int[list.length];
 
  for (int i = 0, j = result.length - 1; i < list.length; i++, j--) {
    result[j] = list[i];
  }
  return result;
}
多维数组

多维数组可以看成是数组的数组,比如二维数组就是一个特殊的一维数组,其每一个元素都是一个一维数组,例如:

String[][] str = new String[3][4];
日期时间类

https://www.runoob.com/java/java-date-time.html

java方法 System.out.println()

println() 是一个方法。
System 是系统类。
out 是标准输出对象。
这句话的用法是调用系统类 System 中的标准输出对象 out 中的方法 println()。

可变参数

JDK 1.5 开始,Java支持传递同类型的可变参数给一个方法。

方法的可变参数的声明如下所示:

typeName… parameterName
在方法声明中,在指定参数类型后加一个省略号(…) 。

finalize() 方法

Java 允许定义这样的方法,它在对象被垃圾收集器析构(回收)之前调用,这个方法叫做 finalize( ),它用来清除回收对象。

例如,你可以使用 finalize() 来确保一个对象打开的文件被关闭了。

方法的参数(形参)传递

方法的参数传递为值传递
当参数是普通类型时–易理解
当参数是引用类型时,并不能改这个对象的引用名单上方法可以调用

java面向对象–独立出来 见另一个blog

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5697044.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存