JavaSE learn

JavaSE 学习

learn from kuangshen

入门

版本

JavaSE 标准版,用于桌面,控制台开发

JavaSE 企业版,用于服务器开发

环境

JDK: JAVA Development Kit

JRE: JAVA Runtime Enviroment

JVM: JAVA Virtual Enviroment

安装

主流:JDK 1.8

下载-安装-配置环境

​ 1、新建系统变量:变量名JAVA_HOME 变量值是安装路径

​ 2、配置path:双击已存在的path,编辑,新建两个

​ 3、第一个%JAVA_HOME%\bin 第二个%JAVA_HOME%\jre\bin

测试:打开cmd 输入java -version

Hello World

新建文件 JavaHelloWorld.java 文件名与class名一致

#代码:
public class JavaHelloWorld{
   
	public static void main(String[] args){
   
		System.out.print("Hello World!");
	}
}

当前目录运行cmd

#编译,生成JavaHelloWorld.class
javac .\JavaHelloWorld.java

#运行class名称JavaHelloWorld 无后缀,不是JavaHelloWorld.class文件
java JavaHelloWorld

注意

1、java需要区分大小写

2、public class 名称与文件名一致

3、运行时 java 文件名,不带后缀

安装IDEA

使用与pycharm类似

基础

数据类型

java是强类型语言,需要先定义再使用

byte
short
int
long
float
double
char
boolean
String 是类,S大写

转义字符

\t 制表符
\n 换行

类型转换

优先级 低--------------------------------------高
	  byte,short,char->int->long->float->double

为了可视化方便,数字之间可以加下划线

int a = 10_000_000;

变量

type name = value;

1、类变量

2、实例变量

3、局部变量

首字母小写+驼峰原则

public class Hello {
    static int a=0; //类变量,修饰符static
    String name; //实例变量,默认 null
    int age;//实例变量,默认 0
    public static void main(String[] args) {
        int i=0;//局部变量
        Hello hello = new Hello(); //创建类,自己
        System.out.println(hello.name); //调用实例变量

        System.out.println(a);//调用类变量
    }
}

常量

不可变动的值,命名习惯用大写表示,结合_下划线区分单词

final 常量名=值 

命名规范

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6bT09vI6-1624275354830)(https://i.loli.net/2021/06/17/4gBGA2iakdP5w8q.png)]

运算符

算数:+, -, *, /, %, ++, --,
赋值:=,
关系:==, !=, >,<,>=,<=,instanceof
逻辑运算:&&, ||, !
位运算:&, |, ^, ~, >>, <<, >>>,
条件:?:,
扩展赋值运算符:+=, -=, *= /=,

优先级

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2cQiYmPK-1624275354832)(https://i.loli.net/2021/06/17/DxE3du1RCsjLv6Y.png)]

包机制

package pkg1[. pkg2[. pkg3...]];

一般利用公司域名倒置作为包名称;com.baidu.www

使用包:import pkg1[. pkg2[. pkg3…]].(classname|*);

JavaDoc

百度:jdk 帮助文档,查看官方包使用说明

用于生成自己的API文档

/**再按回车会自动生成

/**
 * @author Bruce
 * @version 1.0
 * @since 1.8
 */
public class Hello {
    /**
     * 
     * @param name
     * @return
     * @throws Exception
     */
    public String test(String name) throws Exception{
        return name;
    }
}

流程控制

交互

Scanner

Scanner scanner = new Scanner(System.in);

if(scanner.hasNextLine()){
	# 整行
	String str = scanner.nextLine();
	# 第一个字符串,空格后的不接收
	System.out.println("输出信息:"+str);
	}

顺序

选择

if(){
   }

switch(str){
   
    case "A":
        break;
    case "B":
        break;
    default:
        break;
}

循环

while()

do{
   }while() #至少执行一遍

for(int i=0;i<100;i++){
   } #IDEA快捷键 100.for

#死循环
for(;;)
while(1)

#增强for循环,遍历数组和集合
int[] numbers = {
   10,20,30,40,50};
for (int x:numbers){
   
	System.out.println(x);
}

#
break;跳出循环
#
continue:中止本次循环,进入下一次

方法

定义和调用

实现某个功能的语句块的集合

设计原则:一个方法实现一个功能

命名:首字母小写+驼峰

public static void main(String[] args) {
   
    int sum = addFunction(1,2);
    System.out.println(sum);

}

public static int addFunction(int a, int b){
   
    return a+b;
}

方法重载

一个类中有多个名称相同的方法,但是返回值不同。

    public static int addFunction(int a, int b){
   
        return a+b;
    }
    public static double addFunction(double a, double b){
   
        return a+b;
    }

递归

常见:A方法调用B

递归:A方法调用A,自己调用自己

包括:

​ 1、递归头,什么时候不调用自己,如果没有头,则将进入死循环

​ 2、递归体,什么时候需要调用自己

// 阶乘
public class Hello {
   

    public static void main(String[] args) {
   
        int result = f(5); //值不能太大,调用递归次数不能太大
        System.out.println(result);
    }
    public static int f(int n){
   
        if (n==1){
     // 递归头
            return 1;
        }
        else{
   
            return n*f(n-1);
        }
    }
}

数组

相同类型的有序结合

数组也是对象,数组元素相当于对象的成员变量

数组长度是确定的,不可变的,如果越界,则报错:ArrayIndexOutofBounds

int[] a = {
   1, 2, 3}; //Java中的新建数组格式
int   b[]= {
   1,2,3}; //C++中的新建数组格式

//定义长度10的int数组
int[] a = new int[10];

//多维数组
int[][] a = new int[5][10];

堆和栈

堆:存放new的对象和数组,可以被所有的线程共享,不会存放别的对象引用

栈:存放基本对象类型(会包含这个基本类型的具体数值),引用对象的变量(会存放这个引用在堆里面的具体地址)

int[] array=null;//创建。栈内存出现array;堆中无变化;
array = new int[10];//赋值。堆内存出现array,有10个int类型的数

//静态初始化
int[] a = {
   1,2,3};

//动态初始化,初始化为0,String类型为null
int[] b = new int[10];
b[0]=5;

Arrays 类

java.util.arrays

冒泡排序

    public static int[] sort(int[] array){
   
        int a =0;
        for (int i = 0; i < array.length-1; i++) {
   
            boolean flag = false;
            for (int j = i; j < array.length-1; j
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值