java入门概要

java的版本

Java的版本有三种:
JavaSE :标准版,定位在个人计算机的应用上
JavaEE : 企业版 定位在服务器端的应用
JavaME:微型版,定位在消费性电子产品的应用上(没有人在用)

jdk jre jvm的解释和区别

JVM:是java虚拟机,用于运行java程序
JRE: 是Java运行时的环境 ,包含了java运行时所需要的的类库
JDK:是java开发工具包,里面包含了java的开发工具,如java,javac等
也就是说:
JRE = JVM + libs (java运行时需要的类库)
JDK = JRE + java开发工具
参考网址:https://www.cnblogs.com/iskandar/p/8933340.html

jdk的下载和安装

命名规范

1、 项目名全部小写

2、 包名全部小写

3、 类名首字母大写,如果类名由多个单词组成,每个单词的首字母都要大写。
如:public class MyFirstClass{}

4、 变量名、方法名首字母小写,如果名称由多个单词组成,每个单词的首字母都要大写。
如:
int index=0;
public void toString(){}

5、 常量名全部大写
如:
public static final String GAME_COLOR=”RED”;

6、所有命名规则必须遵循以下规则:

1)、名称只能由字母、数字、下划线、$符号组成

2)、不能以数字开头

3)、名称不能使用JAVA中的关键字。

4)、坚决不允许出现中文及拼音命名。

变量

在这里插入图片描述

逻辑运算符

自行百度,理解即可

位运算符

所谓位运算指的是进行二进制位的运算
在这里插入图片描述
在这里插入图片描述

三元运算符

语法:x ? y : z
关系表达式 ? 表达式1 : 表达式2,当关系表达式为true时,结果为表达式1,否则为表达式2

数据类型的转化

自动类型转换
自动类型转换指的是容量小的数据类型可以自动转换为容量大的数据类型
在这里插入图片描述
自动转换按从低到高的顺序转换。不同类型数据间的优先关系如下:
低--------------------------------------------->高
byte,short,char-> int -> long -> float -> double
强制数据类型转换
可能会造成进度的损失
运算符“()” 内的type表示将值var 想要转换成的目标数据类型
如:
double x = 3.14;
int nx = (int) x;
char c = “a”;
int d = c+1;
注意:不可以在布尔类型和任何数值类型支架做强制类型转换
浮点数转成整数,则直接丢失小数部分

如何获得键盘的输入

使用Scanner

import  java.util.Scanner;
public class Test{
	public static void main(String[]args){
		Scanner scanner = new Scanner(System.in);
		//将输入的一行赋值给string1
		String string1 = scanner.nextLine();
		//将输入的单词到第一个空白符为止的字符串赋值给string2
		String string2 = scanner.next();
		//将输入的蛛丝赋值给num
		int num = scanner.nextInt();
		
		//输出
		System,out.println(string1+string2+num);
	}
}

方法的重载

构成方法重载的条件:
不同的含义:
形参顺序不同,形参个数不同,形参类型不同

垃圾的回收过程:

详情见我的另一篇博客:
https://blog.csdn.net/qq_43545801/article/details/108944855

this关键字:

this.属性名称
指的是访问类中的成员变量 用于区别成员变量和局部变量
this.方法名称
用于访问本类的成员方法
this();
访问本类的构造方法
注意:this() 只可以用于构造方法内,且必须是构造方法的第一条语句

static 关键字

我们需要知道,static是一个修饰符,可以修饰类的成员变量,成员方法,优化程序性能
静态方法是不依赖于任何对象的,既然没有任何对象,就谈不上this了。

  1. static 修饰成员方法
    需要明确,被static 修饰的方法叫做静态方法
    在静态方法中不可以访问类的非静态成员变量和非静态成员方法
    因为非静态成员方法或变量都必须依赖具体的对象才可以被调用
    在非静态成员方法内可以访问静态成员方法或变量
    实例:

public class MyObject {
    private static String str1 = "staticProperty";
    private String str2 = "property";
	//构造方法
    public MyObject(){}

    public void print1(){
        System.out.println(str1);
        System.out.println(str2);
        print2();
    }
    public static void print2(){
        System.out.println(str1);
//        System.out.println(str2);
//        print1();
    }

    public static void main(String[] args) {
        MyObject.print2();
        System.out.println("=====================");
        MyObject my = new MyObject();
        my.print1();
    }
}

运行结果:
在这里插入图片描述
因为print2方法是独立于对象存在的,在main方法内可以直接使用类名调用

在print2()内,没有对象,也就是说,在print2方法内,str2不存在,就会出错。非静态方法在静态方法内会出错也是这样

但在print1这个非静态方法内,调用静态方法print2不会产生任何问题

为什么static 可以优化程序性能?

因为静态方法或者静态变量,只会在类被初次加载的时候执行一次

this和static 小结一下

构造器内使用this.id 什么什么就可以,普通方法可以使用this,静态方法内不可以使用

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值