Java知识要点

news2024/9/22 22:35:52

第1章 Java概述

重要特性:

Write Once Run Anyway

简单性:相比C++移除指针、运算符重载、多重继承等,垃圾自动回收。

平台无关性:Java引进虚拟机(JVM,Java Virtual Machine)概念。

安全性:没有指针,内存由系统分配。

动态转载:类运行时是动态装载的。

编译过程:
Java程序编译过程

JRE: Java Runtime Environment
JDK:Java Development Kit

JRE和JDK的区别:https://www.cnblogs.com/mark5/p/11063047.html

第2章 Java语言基础

数据类型名称位长
字节型byte8
短整型short16
整型int32
长整型long64
单精度型float32
双精度型double64
字符型char16
布尔型boolean1

数据输入:类Scannerimport java.util.Scanner;

方法
nextBoolean()
nextDouble()
nextFloat()
nextInt()
nextLine()
next()

第3章 程序流程控制

声明多维数组:int array[][],int[][] array

和其他高级编程语言不同,Java多维数组不必须是规则矩阵形式。

int[][] a = new int[2][];
a[0] = new int[2];
a[0][0]=12;
a[0][1]=2;
a[1] = new int[1];
a[1][0]=111;
for(int i=0; i<a.length; i++){
    for(int j=0; j<a[i].length; j++){
        System.out.print(a[i][j] + "\t");
    }
    System.out.println();
}

数组复制:System.arraycopy(src, srcPos, dest, destPos, length);

int array[] = new int[10];
for(int i=0; i<10; i++){
    array[i]=i;
}
int array1[] = new int[5];
System.arraycopy(array, 0, array1, 0, 5);
for(int i:array1){
    System.out.print(i + "\t");
}

数组排序:import java.util.Random; import static java.util.Arrays.sort;

Random的使用:http://c.biancheng.net/view/867.html

Random r = new Random();
int array[] = new int[10];
for(int i=0; i<10; i++){
array[i]=r.nextInt()%100;
}
sort(array);//Arrays类中的sort()使用的是“经过调优的快速排序法”
for(int i=0; i<array.length; i++){
System.out.print(array[i] + "\t");
}

第4章.类与对象

用关键字static修饰的方法称为类方法,又称为静态方法。不用static修饰的方法称为实例方法,又称为对象方法。

类方法只能操作类变量,不能操作实例变量。

Java的值传递还是引用传递:https://www.jianshu.com/p/457bfc91df79,https://www.javadude.com/articles/passbyvalue.htm

“primitives are passed by value, objects are passed by reference”.

java常用的包:看看就行了

序号包名功能描述
1java.langjava的核心类库,包含了运行java程序必不可少的系统类,如基本数据类型、基本数学函数、字符串处理、线程、异常处理类等,系统缺省加载这个包。
2java.iojava语言的标准输入/输出类库,如基本输入/输出流、文件输入/输出、过滤输入/输出流等等。
3java.utilJava的实用工具类库Java.util包。在这个包中,Java提供了一些实用的方法和数据结构。例如,Java提供日期(Data)类、日历(Calendar)类
4java.awt.image处理和操纵来自于网上的图片的java工具类库。
5java.net实现网络功能的类库有Socket类、ServerSocket类。
6java.awt构建图形用户界面(GUI)的类库,低级绘图操作Graphics类,图形界面组件和布局管理
7java.awt.eventGUI事件处理包 。
8java.sql实现JDBC的类库。

import的使用:当定义包后,**在同一个包中的类是默认隐式导入的。**但如果一个类访问来自另一个包中的类,则前者必须显示通过import语句导入后者后才能使用。

基本类型的封装类:使用范型数据的时候只能使用封装的类。

原始类型封装类静态的常用方法
booleanBooleanBoolean.parseBoolean(String str)
charCharacterisDigit(char ch);isLetter(char ch);isLowerCase(char ch);toLowerCase(char ch)
byteByteByte.parseByte(String str)
shortShortShort.parseShort(String str)
intIntegerInteger.parseInt(String str)
longLongLong.parseLong(String str)
floatFloatFloat.parseFloat(String str)
doubleDoubleDouble.parseDouble(String str)

第5章面向对象高级特性

实操:https://www.liaoxuefeng.com/wiki/1252599548343744/1255943520012800

下面都是概念

需要掌握的知识点:

  • 继承(extends)
  • 关键字this和super
  • final关键字
  • 转型和多态
  • 抽象类(abstract class )和接口(interface)
  • 内部类
  • 匿名对象和类
  • 异常类
  • 泛型类

转型与多态:

  • 上转型:子类对象到父类对象的类型转换,即把创建的子类对象放到父类的对象变量中,该过程是自动完成的,有些像基本类型的自动类型转换。

  • 下转型:父类对象到子类对象的转换,必须使用强制转换。

  • 多态:是指同一个操作被不同类型对象调用时可能产生不同的行为。

final关键字:

final的本义是“最终”,final可以修饰变量、一般方法和类 。

final修饰变量,表示变量一旦获取了初始值就不能被修改;

final修饰方法,表示该方法在派生子类中不能被重写,只能引用;

final修饰类,表示该类不能派生出子类。

抽象类(abstract class )和接口(interface):

相同点有:

  • 都包含抽象方法,这些方法在继承抽象类或实现接口的类中都要具体实现,如果有一个不实现,该类就是抽象类,还是不能创建实例对象。

  • 抽象类和接口都包含抽象方法,不能用new创建对象实例,两者都可以通过上转型对象或接口回调方式实现多态机制。

不同点有:

  • 声明方式不同,接口使用interface关键字,而抽象类使用abstract class关键字。

  • 成员变量不同,接口中只能有静态常量,而抽象类中不受限制。

  • 成员方法不同,接口中的方法均是public abstract;而抽象类中抽象方法必须加上修饰符abstract。另外,接口中不能定义静态方法,而抽象类可以。

内部类:

如果一个类A的内部定义了一个类B,那么类A称为外部类或外嵌类,而类B称为内部类或内嵌类 。

匿名对象和类:

new 类名([实参列表]){//;类体

继承“类名”的子类

}

对象只能使用一次。

异常:

try catch final(final块一定会执行

常用异常类:

空指针异常类:NullPointerException

类型强制转换异常:ClassCastException

数组负下标异常:NegativeArrayException

数组下标越界异常:ArrayIndexOutOfBoundsException

第6章.OOP程序设计的基本原则

知识点:了解就行

  • 对象的抽象
  • 单一职责原则
  • 迪米特原则
  • 接口隔离原则
  • 开放-封闭原则
  • 里氏替换原则
  • 合成/聚合复用原则

第7章 常用类

常用的方法在java.md里面有。

知识点:

  • String类
  • StringBuffer类
  • String类与StringBuffer类比较
  • StringTokenizer类
  • 日期类(Date、Calendar)

String类和StringBuffer类:

String类定义字符串常量对象,可以直接定义,也可以用构造方法定义。StringBuffer类对象必须使用构造方法定义。

String的内容一旦声明不可改变,如果要改变,改变的是String的引用地址。

用StringBuffer创建的字符串对象可以修改。并且所有的修改都直接发生在包含该字符串的缓冲区上。

日期类(Date、Calendar):

Date类可以得到一个完整的日期,但是日期格式不符合平常看到的格式,时间也不能精确到毫秒,要想按照用户自己的格式显示时间可以使用Calender类完成操作。Date类取得的时间是一个正确的时间,但显示格式不符合习惯,可以利用DateFormat类进行格式化。

Calender可以将取得的时间精确到毫秒,但是此类是抽象类,要想使用抽象类,必须依靠对象的多态性,通过子类进行父类得实例化操作,其子类是GregorianCalender,在Calender中提供了部分常量,分别表示日期的各个数字。

第8章 图形界面设计

不考,java swing

第9章 Java输入和输出

知识点:代码见java.md

  • 文件操作:File
  • 字节流:InputStream和OutputStream
  • 字符流:Reader和Writer

第10章多线程

见Java.md:Java并发编程、wait、notify、notifyAll,JDBC

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/79558.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

论文推荐:Rethinking Attention with Performers

重新思考的注意力机制&#xff0c;Performers是由谷歌&#xff0c;剑桥大学&#xff0c;DeepMind&#xff0c;和艾伦图灵研究所发布在2021 ICLR的论文已经超过500次引用 传统的Transformer的使用softmax 注意力&#xff0c;具有二次空间和时间复杂度。Performers是Transformer…

常用射频器件性能指标

IFM&#xff08;Instantaneous FrequencyMeasurement&#xff09;&#xff1a;瞬时测频接收机&#xff1b; SOC&#xff08;System on Chip&#xff09;&#xff1a;片上系统&#xff0c;可独立实现接收机功能&#xff1b; AIU&#xff1a;前端 一、放大器关键参数 1.1 -1dB压…

如何选择好的软件测试技术?

软件测试技术是指测试软件或软件一部分的方法或方式。每种测试技术都有其自身的优势。不同的技术针对不同类型的缺陷。因此&#xff0c;说一种技术是最好的是错误的。根据软件及其要求&#xff0c;一种测试技术可能比另一种更适合用于该目的。有时&#xff0c;结合使用不同的测…

安卓APP源码和设计报告——魔幻相机

课程设计报告书 Android大作业 学 院 计算机科学与工程学院 专 业 计算机科学与技术一班 学生姓名 小组成员 学生学号 指导教师 课程编号 课程学分 起始日期 教师评语 教师签名&#xff1a;日期&#xff1a; 成绩评定 备注 Android大作业 魔幻相机 一、选题背景 据统计&am…

[激光原理与应用-47]:《焊接质量检测》-4-普雷茨特激光焊接过程监控系统LWM分析

目录 第1章 激光焊接过程监控系统LWM概述 第2章 产品特性与功能 2.1 生产相关的信息 2.2 原始信息检测 2.3 焊接质量分析信息 2.4 缺陷报告与生产控制 2.5 LWM给客户带来的好处 2.6 适用范围 2.7 人机界面 (HMI) 第3章 焊接质量检测的原理 3.1 基本原理 3.2 技术规…

excel_阻止常数值串以科学计数法显示@数据分列@空格分隔符号分列数据

文章目录excel_阻止常数值串以科学计数法显示WPS设置某列的数据显示格式核心步骤数据-分列选择分割符设置文本类型收尾工作数据居中Office-Excelexcel_阻止常数值串以科学计数法显示 WPS 设置某列的数据显示格式 核心步骤 如果您的数据是普通数据,那么类型框里输入0就可以了…

太忙,没时间学?在职人员如何高效备考MBA?

对于很多在职人员来说&#xff0c;想要进一步深造提升学历&#xff0c;备考MBA无疑是个不错的选择。但近几年随着MBA考生人数的增长&#xff0c;其竞争也愈加激烈。因此想要取得好的成绩&#xff0c;成功上岸&#xff0c;不仅仅需要持续不断的努力&#xff0c;时间的科学管理和…

机器人与视觉,基于TCP(工具坐标)偏移

基于工具坐标系的移动偏转。 基于TCP旋转的特点在于&#xff0c;具有1个固定端点&#xff0c;多个活动端的特点。 我们在建立TCP左边偏移的时候&#xff0c;可以将2个点近似的模拟在同一个坐标系下 基于TCP偏转的特点在于&#xff0c;工作的时候&#xff0c;示教点与工作点的位…

CSS -- 03. CSS盒子模型

文章目录盒子模型1 盒子模型1.1 看透网页的本质1.2 盒子模型组成1.3 边框1.4 表格的细线边框1.5 边框会影响盒子实际大小1.6 内边距&#xff08;padding&#xff09;1.7 外边距&#xff08;margin&#xff09;1.8 外边距合并1.9 清除内外边距2 圆角边框3 盒子阴影4 文字阴影盒子…

netfilteriptables探讨(4)——nat的实现与使用

在之前的几篇文章中&#xff0c;我们讨论了netfilter与iptables的实现原理与基本用法。在netfilter&iptables的各种使用场景中&#xff0c;nat是最常用也是最复杂的用法之一。许多常用的网络使用模式都是通过nat iptables规则实现的&#xff0c;例如docker默认的bridge网络…

Netty_06_手写RPC基础版(实践类)

文章目录一、前言二、整体运行三、客户端和服务端3.1 客户端3.2 服务端3.3 RpcServerInitializer和RpcClientInitializer四、小结一、前言 常用的rpc框架&#xff1a;dubbo thrift gRPC rpc定义&#xff1a;remote proceducer call rpc目的/解决的问题&#xff1a; 像调用本地…

Nginx实战应用-负载均衡

在上篇文章的基础上我们再创建两个服务&#xff0c;三个服务的端口分别是 8081 8082 8083. 2.Nginx配置 upstream块 upstream name{…} upstream gupao{ server 192.168.12.1:8081; server 192.168.12.1:8082; server 192.168.12.1:8083; } server { location / { pr…

平均月薪15k+?自动化测试工程师?3个月教你从“点工”蜕变为“码农”

前言 一、自动化测试工程师平均收入【看图&#xff08;来自职友集&#xff09;】 基本收入都在15k左右&#xff0c;随着技术的越来越牛逼工资也就会越来越高。 我的职业生涯开始和大多数测试人一样&#xff0c;刚开始接触都是纯功能界面测试。那时候在一家电商公司做测试&…

[附源码]计算机毕业设计基于vue+mysql开发的考试系统Springboot程序

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

【PAT甲级 - C++题解】1092 To Buy or Not to Buy

✍个人博客&#xff1a;https://blog.csdn.net/Newin2020?spm1011.2415.3001.5343 &#x1f4da;专栏地址&#xff1a;PAT题解集合 &#x1f4dd;原题地址&#xff1a;题目详情 - 1092 To Buy or Not to Buy (pintia.cn) &#x1f511;中文翻译&#xff1a;买还是不买 &#x…

JAVA中的运算符-关系运算符

文章目录0 写在前面1 关系运算符说明2 举例3 写在最后0 写在前面 JAVA包含丰富的关系运算符&#xff0c;这些关系运算符最终结果一定是boolean类型。即两个结果&#xff1a;true false 1 关系运算符说明 符号说明ab,判断a和b的值是否相等&#xff0c;成立为true&#xff0c;…

游戏开发48课 性能优化6

3.7.2 算法优化 思路是找出最耗CPU的算法或逻辑&#xff0c;优化之。 空间换时间。利用预排序/预处理/缓存/动态规划等等思路换取CPU的性能。选取更快的算法。属于数据结构和算法的范畴&#xff0c;思路是将O(n2)降低成O(n)或O(logn)&#xff0c;具体可以参看《算法导论》《游…

springcloud 服务消费及熔断

目录 1. 服务消费方式 1.1 RestTemplate 1.2 feign 2. 服务熔断&#xff08;降级&#xff09; 2.1 在微服务架构中服务熔断的必要性 2.2 hystrix 1. 服务消费方式 1.1 RestTemplate 传统情况下在java代码里访问restful服务&#xff0c;一般使用Apache的HttpClient。不过…

PMP内容2

PMP内容2目录概述需求&#xff1a;实现思路分析1.沟通管理2.监督沟通&#xff1a;3.风险管理4.5.实施采购控制采购相关方管理&#xff1a;相关方Survive by day and develop by night. talk for import biz , show your perfect code,full busy&#xff0c;skip hardness,make …

JavaWeb语法一:进程和线程的区别与联系

目录 1.进程的概念 1.1&#xff1a;进程控制块抽象&#xff08;PCB&#xff09; 1.2&#xff1a;进程调度的相关属性 1.2.1&#xff1a;进程的状态 1.2.2&#xff1a;优先级 1.2.3&#xff1a;上下文 1.2.4&#xff1a;记账信息 2&#xff1a;进程的虚拟地址空间 3.线程…