Java基础知识(知识点)

Java基础知识(知识点)1 Java 是一种高级计算机语言 是可以编写跨平台应用软件 完全面向对象的程序设计语言 2 Java 划分为三个技术平台 JavaSE JavaEE JavaMEJavaSE 是桌面应用 JavaEE 是 web 应用 平台企业版 JavaME 是手机应用 平台微型版 3 Java 语言的特点 简单易用 安全可靠 跨平台 通过 Java 虚拟机实现 面向对象 支持多线程 自动进行垃圾回收 c 语言没有 Java 引入了虚拟机的概念 通过虚拟机 JVM 可以在不同的操作系统上运行 Java 程序 从而实现跨平台特

1、Java是一种高级计算机语言,是可以编写跨平台应用软件、完全面向对象的程序设计语言。

2、Java划分为三个技术平台:Java SE、Java EE、Java ME

Java SE是桌面应用,Java EE是web应用,平台企业版,Java ME是手机应用,平台微型版

3、Java语言的特点:简单易用、安全可靠、跨平台(通过Java虚拟机实现)、面向对象、支持多线程、自动进行垃圾回收(c语言没有)。

Java引入了虚拟机的概念,通过虚拟机(JVM)可以在不同的操作系统上运行Java程序,从而实现跨平台特性。

请添加图片描述

4、所有的可执行文件都在bin文件夹下

5、bin目录:该目录用于存放一些可执行程序,如javac.exe(Java编译器)、java.exe(Java运行工具)、jar.exe(打包工具)和 javadoc.exe(文档生成工具)

javac.exe是Java编译器工具,它可以将编写好的Java文件编译成Java字节码文件(可执行的Java程序)。就是将.java文件编译成.class文件。

java.exe是Java运行工具,它会启动一个Java虚拟机(JVM)进程,专门负责运行由Java编译器生成的字节码文件(.class文件)

6、db目录:db目录是一个小型数据库

7、include目录:在启动时引入一些C语言的头文件。

8、jre目录:此目录时Java运行时环境的根目录,它包含Java虚拟机、运行时的类包、Java应用启动器以及一个bin目录,但不包含开发环境中的开发工具

jre只负责编写,不负责编译(只有java没有javac)

9、lib目录:为Java类库或库文件,是开发工使用的归档包文件

10、src文件夹:放置JDK核心类的源代码。




1、PATH配置bin文件夹的目录

2、PATH环境变量用于存储Java的编译和运行工具所在的路径。

请添加图片描述

3、因为Hello World.class字节码文件不是二进制的,不能直接执行,所以需要进行解析。

4、解析器使用“java HelloWorld”命令启动Java虚拟机运行程序,Java虚拟机首先将编译好的字节码问价加载到内存,这个过程称为类加载

5、Java通过虚拟机,一次编译,到处运行。

6、Java程序通过Java虚拟机可以实现跨平台特性,但是Java虚拟机并不是跨平台的。

7、一个Java文件编译后一定生产一个class文件(❌)

一个Java文件可以有很多类,一个类对应一个class文件,有几个类就编译生成几个class文件。

8、一个文件中只能有一个公共类(public 修饰的类)

9、一个Java文件中可以没有公共类,但是一旦有了公共类,那么公共类的名字一定要和文件名保持一致。







1、标识符:经常需要在程序中定义一些符号来标记一些名称,如包名、类名、方法名、参数名、变量名等,这些符号被称之为标识符

标识符可以由任意顺序的大小写字母、数字、下画线(_)和美元符号( $ )组成,但是标识符不能以数字开头,也不能是Java中的关键字,也不能和JDK中的类同名。否则会在编译的时候出错

类型名 占用空间 取值范围
byte 8位(1个字节) -27~27-1
short 16位(2个字节) -215~215-1
int 32位(4个字节) -231~231-1
long 64位(8个字节) -264~264-1
float 32位(4个字节) 1.4E-45~3.4E+38,-1.4E-45~-3.4E+38
double 64位(8个字节) 4.9E-324~1.7E+308, -4.9E-324~-1.7E+308
char 每个字符变量占用2个字节
Unicode 每个Unicode码占用16个字节

4、Java的字符类型采用的是Unicode编码方案,每个Unicode码占用16个字节

5、对于char类型的赋值时需要使用一对单引号括起来,而且单引号中必须有且只能有一个字符。

6、Java中不能使用1、0表示真假,只能用true、false表示真假,而c语言用非0表示真,用0表示假,C语言中没有true、false。

请添加图片描述

范围小的能够自动转换为范围大的。

8、理解几个转换:

public class testA { 
             public static void main(String[] args) { 
             System.out.println(2+3+'a'); //自动转换成int类型了 System.out.println(2+3+"a"); //自动转换成String类型的了 System.out.println("a"+2+3); //自动转换成String类型的了 } } 

请添加图片描述

9、常量分为数值常量、符号常量:100,‘a’ ,true

System.out.println(0b0); 

请添加图片描述

2⃣️:八进制:以0开头,并且其后由0~7(包括0和7)的整数组成的数字序列,如:0324

System.out.println(0324); 

请添加图片描述

System.out.println(010); 

请添加图片描述

3⃣️:十进制:由数字0~9(包括0和9)的整数组成的数字序列,如198.

4⃣️:十六进制:以0x或者0X开头,并且后面跟随着0~9、A~F组成的字符序列,如0x25AF

System.out.println(0x25AF); 

请添加图片描述

System.out.println(0x10); 

请添加图片描述




1、java常量需要声明定义常量类型、常量名,并且可以对该常量进行初始化赋值,也可以后续赋值,但是Java常量一旦赋值后,值就不允许更改。

请添加图片描述

2、注意%的使用

public class testA { 
                public static void main(String[] args) { 
                System.out.println(-20%3); System.out.println(20%-3); } } 

请添加图片描述

3、位运算符的使用

& 按位与 只有当&左右的两个数相同的时候才会返回值1

public class testA { 
                public static void main(String[] args) { 
                System.out.println(0&0); System.out.println(0&1); System.out.println(1&0); System.out.println(1&1); } } 

请添加图片描述

| 按位或 只有当 | 左右都取0的时候才会返回值0

public class testA { 
                public static void main(String[] args) { 
                System.out.println(0|0); System.out.println(0|1); System.out.println(1|0); System.out.println(1|1); } } 

请添加图片描述

~ 取反

自己求~-7的值,反正我不知道该怎么办了。

public class testA { 
                public static void main(String[] args) { 
                System.out.println(0^0); System.out.println(0^1); System.out.println(1^0); System.out.println(1^1); } } 

<< 逻辑左移,<<就是将操作数所有二进制位向左移动制定的位数。运算时,左边移走的部分舍去,右边的空位补0.

>>逻辑右移,就是将操作数所有的二进制位向右移动制定的位数。运算时,左边的空位根据原数的符号位补0或1(原本是负数就全部补1,原本是整数就全部补0),右边移走的部分舍去。

>>>无符号右移,就是将所有操作数所有二进制位不考虑正负向右移动指定尾数。运算时,左边的空位全部补0,右边移走的部分舍去。

对于switch语句,支持字符型,整型,字符串,不支持小数(float、double),也不支持布尔型。

方法的三要素: 方法名、参数、返回值的类型
对于return回去什么类型的值,返回值的类型就是什么。

数据类型 默认初始化值
byte、short、int、long 0
float、double 0.0
char 一个空字符,即’\u0000’
boolean false
引用数据类型(String) null,表示变量不引用任何对象

数组的常用操作:插入、删除、修改、查找、排序、初始化

public class testA { 
                public static void main(String[] args) { 
                int a[] = { 
               1,2,3,4,5,6,7}; for(int i : a) { 
                System.out.print(i+" "); } } } 

请添加图片描述

二维数组是按照行进行存储的:

public class testA { 
                public static void main(String[] args) { 
                int [][]a; //正确 int []b[]; //正确 int c[][]; //正确 } } public class testA { 
                public static void main(String[] args) { 
                int [][]a = new int[3][4]; //正确 int [][]b = new int[3][]; //正确 int [][]c = new int[][4]; //不正确 } } 

java 中的变量分为两种数据类型:基本数据类型、引用数据类型。

Java语言严格区分大小写。




1、面向对象的三大特征:封装、继承、多态

2、子类是不能够继承父类的构造方法的,所以子类不能将父类中所有的东西都继承。

3、类是对某一类事物的抽象的描述,而对象用于表示现实中该类事物的个体。类是对某一类事物的抽象描述的集合。

4、通过构造方法给成员变量赋初始值。

public class A{ 
                   int x; int y; A(int x){ 
                   this.x=x; } A(int x,int y){ 
                   this(x); //调用其他构造方法的时候,必须写在该构造方法的第一行上。 this.y=y; } } 

8、方法的重载:前提是在同一个类中有多个同名的方法,其参数的个数与参数的类型不同,这与返回的类型(方法)无关。




1、静态的方法只能访问静态的方法和静态的成员。

3、在非静态成员方法中,可以使用this访问类的其他非静态成员。

4、类对象(使用static修饰的)在未创建对象之前就已经被加载了。

5、声明构造方法的时候,不能使用private关键字修饰。(default、protected、public都可以修饰构造方法)

6、static关键字不可以修饰类。

7、static关键字不可以修饰所有的变量。因为static不能修饰局部变量。

8、构造方法不能被继承。




1、构造方法不能被继承。

2、super关键字用于访问父类的成员,例如访问父类的成员变量、成员方法、构造方法。

4、方法的重写的时候可以改变方法的权限,但是子类的权限范围要比父类的权限范围大。

5、方法的重写的时候子类不呢个抛出比父类抛出的更多的异常。

7、String类就是被static、final修饰的类。

8、包含抽象方法的类一定是抽象类,抽象类不一定含有抽象方法。— abstract

9、接口是一种特殊的抽象类——— interface




1、接口中除了抽象方法外,还可以有默认方法和静态方法(类方法),默认方法使用default修饰,静态方法使用static修饰,并且这两种方法都允许有方法体

public interface my { 
                            void aa(); //public修饰的方法是不能有方法体的。 default void bb() { 
                            //default修饰的方法,是可以有方法体的。 System.out.println("default修饰的方法在接口中是必须有方法体的"); } static void cc() { 
                            System.out.println("静态方法在接口中是必须有方法体的"); } private void dd() { 
                            //private修饰的方法是永远不会被使用的,所以使用private修饰方法是无意义的。 System.out.println("private修饰的方法是必须加方法体。"); } } 

2、接口中默认的方法都是使用public abstract进行修饰的。

4、继承只能是单继承,但是实现接口可以实现多实现。

Java基础知识(知识点)

5、父类对象可以指向子类对象,但是子类对象不能指向父类对象,但是子类对象可以通过强制类型转换可以进行转换为父类对象,但是强转是有条件的,只有当父类的对象就是指向的子类的对象的时候才能够发生强制转换。

6、方法的重写、重载都是一种多态的体现(同一种事物、多种形态)

7、注意:if(a instance of cat) 的使用。




1、异常分为编译时异常和运行时异常,编译时异常是必须要出来的异常。

请添加图片描述

2、数组下标越界异常时运行时(处理时)异常。

3、Error类称为错误类,错误是我们处理不了的。

4、Throwable常用方法:

方法声明 功能描述
String getMessage() 返回此throwable的详细信息字符串
void printStackTrace 将此throwable及其追踪输出至标准错误流
void printStackTrace(PrintStream s) 将此throwable及其追踪输出到指定的输出流

5、我们自己定义的方法,将来别人要去调用,所以我们自己定义的方法要消极的处理异常,别人谁调用谁就积极的处理异常。

6、catch后面如果有多个异常,子类要在父类异常前。

7、注意抛出异常的throws和throw关键字。

8、注意自定义异常的使用。




2、

public class test{ 
                                  
	public static void main(String[] args) { 
                                  
		String s1 = "abc";
		String s2 = "a" + "b" +"c";
		System.out.println(s1==s2);
	}
}

请添加图片描述

3、[ int ] capacity; 返回的是当前的容量。

public class test{ 
                                  
	public static void main(String[] args) { 
                                  
		String s1 = "abcde";
		StringBuffer sb = new StringBuffer(s1);//将String类转换为StringBuffer类
		sb.reverse();
		String s2 = sb.toString();//将StringBuffer类转换成String类
		System.out.println(s2);
		}
}

请添加图片描述
5、注意包装类:

byte Byte
char Character
int Integer
short Short
long Long
float Float
double Double
boolean Boolean

6、SimpleDateFormat类是将Date类输出的美式格式的日期转换为自己想要的格式串的形式。

7、SimpleDateFormat 返回的是String字符串




1、Java中操作日期的类有:Date、Calendar、DateFormat

2、Java中专门用于将日期格式化为字符串的类是:DateFormat

3、System类中所提供的属性和方法都是静态的。

4、在进行字符串的比较的运算中,==用于比较地址和值,而equals只用与比较值,是不比较地址的。

5、System类中的currentTimeMillis()方法返回一个long类型的值。

6、Date、Calendar都位于java.util包下,而DateFormat类位于java.text包下。




1、在创建TreeSet对象时,可以传入自定义比较器,自定义比较器需要实现 Comparator接口。

2、使用Iterator遍历集合的时候,首先需要调用的是hasNext()方法判断是否存在下一个元素,若存在下一个元素,则调用next()方法取出该元素。

import java.util.ArrayList;
import java.util.Iterator;

public class test{ 
                                        
	public static void main(String[] args) { 
                                        
		ArrayList<Integer> list = new ArrayList<Integer>();
		list.add(1);
		list.add(3);
		list.add(23);
		list.add(7);
		list.add(9);
		list.add(13);
		Iterator<Integer> it = list.iterator();
		while(it.hasNext()) { 
                                        
			System.out.println(it.next());
		}
	}
}

请添加图片描述

5、在JDK1.8中,根据Lambda表达式特性还增加了一个 forEach(Consumer action) 方法来遍历集合。

6、集合中不能存放基本数据类型,而只能存放引用数据类型。

7、在程序开发时,经常会使用 Properties 类来存储程序中所需的配置




1、编译Java程序需要使用___javac________命令。

2、用户可以根据需要自定义异常,但自定义异常一定要继承__Exception__类。

3、在Java 中,可以使用关键字____new_______来创建类的实例对象。

4、在非静态成员方法中,可以使用关键字_____this______访问类的其他非静态成员。

5、定义一个Java类时,如果前面使用____final_______关键字修饰,那么该类不可以被继承。

6、如果子类想使用父类中的成员,可以通过关键字___super________引用父类的成员

7、接口是一种只含有常量和___抽象方法________的一种特殊的抽象类。

8、JDK中提供了一系列可以存储任意对象的类,统称为_____集合______。

9、在Java语言中,以下throws关键字用于在方法上声明抛出异常

10、System类位于java.lang包中

11、static方法不能访问实例变量,也不能访问实例方法,不能使用this关键字







1、Java的封装性是通过访问权限控制实现的
2、Java中的标识符和关键字都是区分大小写的,如果把声明类的class写成Class或者CLASS,编译会出错。
3、一个类的所有对象共享static修饰的类变量。
4、重载方法的参数形式(类型、参数个数或参数顺序)必须不同
5、Java程序的运行环境简称之为___JRE___。
6、Java中的变量可分为两种数据类型,分别是__基本数据类型__和__引用数据类型__。








版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/233532.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • idea激活码[注册码]2020最新教程

    记录下个人IntelliJ IDEA 2020激活破解教程

    2022年3月13日
    91
  • javascript获取url参数_正在获取网络参数一直不出来

    javascript获取url参数_正在获取网络参数一直不出来在做项目过程中,经常会遇到获取URL参数的问题。每次都是百度一下,找许久才找到能用的方法。今天我自己琢磨了一下,写了一个方法,实测有用。我有一个链接http://www.myrealmname.

    2022年8月6日
    3
  • 2014腾讯实习笔试面试

    2014腾讯实习笔试面试

    2021年11月13日
    57
  • 简图记录-曾国藩家训 观后感「建议收藏」

    简图记录-曾国藩家训 观后感「建议收藏」简图记录 总结~材料 郦波教授的百家讲坛 和 部分相关书籍  一个人疑惑的时候,总是希望通求知如过阅读找到自己的答案,读史可以使人明智,历史总是有借鉴意义,相对于空谈鸡汤无疑更有说服力。我认为向周围的人学习是个人成长一个非常重要的手段,周围的人都是真实的而且在一定范围是可交流讨论的,相对一些当代的名人 他们的事迹往往都是经过加工 或 胡编 鸡汤意味更浓一些,那么另外一条路就是找一些古代的贤…

    2022年6月4日
    30
  • zookeeper无法启动_悦动启动困难已解决

    zookeeper无法启动_悦动启动困难已解决zookeeper启动成功后zkServer.shstatus出错一、问题出现情形运行zookeeperd后显示启动成功:JMXenabledbydefaultUsingconfig:/data/programfiles/zookeeper-3.4.5/bin/../conf/zoo.cfgStarTIngzookeeper…STARTED但用zkServe…

    2022年10月20日
    0
  • python爬取股票代码_python爬取所有股票的个股资讯「建议收藏」

    python爬取股票代码_python爬取所有股票的个股资讯「建议收藏」前言由于毕设是要对股票的新闻报道进行情感分析,所以爬取所有股票的个股资是必要的前提工作了。一开始准备直接在东方财富网上爬取所有的个股资讯,但是在获得个股资讯列表的时候要模拟事件。前提工作安装python3(下载地址),在安装的时候选择添加到环境变量,如果没有选择,可以通过【右键我的电脑】->【属性】->【高级系统设置】->【环境变量】->【path】将安装的Python3的…

    2025年6月23日
    1

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号