java基础知识回顾

Java GC 基础知识快速回顾 Java GC 是内存管理的重要机制,了解其基本概念、原理和调优方法,有助于提升应用性能和稳定性。通过合理配置和优化,可以有效减少 GC 停顿时间,提高应用吞吐量。 阅读详情

1.异常处理:

1.  throws和throw关键字:

  a)  throws抛出异常,在方法中不处理任何的异常,而交给被调用处

  b)  throw人为抛出一个异常对象

  c)  问:try {}里有一个return语句,那么紧跟在这个try后的finally  {}里的code会不会被执行,什么时候被执行,在return前还是后? 答: 因为讲过遇到return关键字就是返回函数调用处,但是finally语句是一定要执行的.所以是先执行finally然后再执行return语句;

  d)  自定义异常类看: http://agan007.iteye.com/blog/1072705

2.      java io相关知识:

RandomAccessFile类:

随机读取, public void seek();单位是字节

和public int skipBytes(int n)起控制作用, 为了移动存取位置时的方便,通常在随机存取文件中会固定每一个数据的长度;

InputStream和OutputStream:

 

      ①FileInputStream和FileOutputStream常用方法:

       public int read()

       public int read(byte[] b)

       public int read(byte[] b, int off, int len)

       new  FileOutputStream(File file, boolean append),是否追加,其中/r/n是换行

       public void write(byte[] b)

       public void write(byte[] b, int off, int len)

      ②BufferedInputStream和BufferedOutputStream:

        BufferedInputStream是InputStream->FilterInputStream的子类

        BufferedOutputStream是OutputStream->FilterOutputStream的子类

        实际最后实现的InputStream和OutputStream实例,多了一个buf数据成员,减少硬盘存取次数.提高效率.为了缓冲区数据一定被写至目的地,建议最后执行flush();

     ③DataInputStream和DataOutputStream:

       DataInputStream是InputStream->FilterInputStream的子类

       DataOutputStream是OutputStream->FilterOutputStream的子类

       对java基本数据类型写入的方法,像int、double和boolean等的方法

      ④ObjectInputStream和ObjectOutputStream:

       直接将内存中整个对象存储至文件,

      ⑤: SequenceInputStream:

             文件分割合并上好用

      ⑥: PrintStream

  打印流,是OutputStream->FilterOutputStream的子类,可以自动进行字符转换的动作,默认会使用操作系统的编码来处理对应的字符转换动作,使用打印流输入最为方便,建议以后在输出的时候就使用打印流,jdk 1.5之后对print()方法更新,加入了格式化操作printf(),和C语言一样好像过时了.一般用PrintWrite

      ⑦ByteArrayInputStream和ByteArrayOutputStream:

       内存流, 流的来源或目的不是文件是内存空间

      ⑧PushbackInputStream:

       没有实际应用过

      ⑨PipedInputStream:管道流

      Reader和Writer:

      ① InputStreamReader和OutputStreamWriter

       对InputStream和OutputStream进行字符处理,字符和字节流之间的转换

      ②FileReader和FileWriter

       FileReader是Reader->InputStreamReader的子类

       FileWriter是Writer ->OutputStreamWriter-的子类

 FileInputStream 类以二进制输入 / 输出, I/O 速度快且效率高,但是它的 read ()方法读到的是一个字节,很不利于人们阅读。 而 FileReader 类弥补了这个缺陷,可以以文本格式输入/ 输出,非常方便;比如可以使用 while((ch = filereader.read())!=-1 ) 循环来读取文件;

      ③BufferedReader和BufferedWriter

      ④PrintWriter

       同样是打印流,同PrintStream不同的是PrintWriter还可以接受Writer对象作为输出的对象

      ⑤CharArrayReader和CharArrayWriter

      ⑥PushbackReader

      ps:记这些概念和容易晕的.好的方法是多敲几次代码,就记住了…

 3.      java多线程

实现方式:

a)      通过继承Thread类或者实现Runnable接口.首选实现接口 ,本身Thread也实现了Runnable接口,继承Thread多个线程间不能实现资源的共享,而实现Runnable接口之后可以实现多个线程之间资源的共享;

b)      start()和run()启动线程效果不同,run()是等一个线程执行完了再继续执行其它线程,start()是同时; Runnable接口没有start(),但是通过Thread类Thread(Runnable target)调用start();

c)      线程的状态:初始化,等待,执行,停止,卸载;线程的操作方法;线程的命名和取得

d)      线程休眠:public static void sleep(long millis)throws InterruptedException;线程优先级:public void sset Priority (int new Priority)

e)      线程同步:synchronized关键字的使用(当多个线程同时进行同一资源的操作,为了保证操作的完整性);死锁是(过多的同步操作,产生了死锁)

f)      Object 类对线程的支持:notify(),wait(),notifyAll()

4.      java类集:

 保存单个值的集合(collection):

a)      List:允许有重复的元素

                                i.              ArrayList:异步处理,新的类,只能用Iterator输出

                                ii.              Vector:同步处理,旧的类,能用Iterator和Enumeration同时输出

b)      Set :不允许有重复的元素

                                i.              HashSet:散列,无序

                               ii.              TreeSet:有序,按Comparable排序

 保存一对值(Map):

a)    HashMap:异步处理,新的类

b)    HashTable:同步处理,旧的类

c)    TreeMap:按KEY进行排序的集合

输出:

a)Iterator:新的输出类,遇到输出肯定用Iterator

b)Enumeration:旧的输出类

给跨代引用记一本账:Java GC 的分配路径、卡表写屏障与收集器版图快速回顾 本文把 Java GC 的零散名词串成一条推理链路:从 TLAB 指针碰撞分配、逃逸分析,到 Eden、Survivor 与晋升的四条路,重点拆解卡表与写屏障如何为老年代指向新生代的引用记账,及 Minor GC 如何只扫脏卡。基于 JDK 8 实测:分散写使 Young GC 停顿涨 10~15 倍,条件卡标记消除卡表伪共享,计数循环让 System.gc 等待 2.7 秒,Survivor 过小使晋升量增加约 400 倍。文末梳理 JDK 8 到 27 的收集器演进、选型路径与排查顺序。 阅读详情

相关推荐

复现HumanMAC(HumanMAC: Masked Motion Completion for Human Motion Prediction)

Human3.6M和HumanEva-I都放到data目录下(记得将data_multi_modal-20250320T022408Z-001.zip和humaneva_multi_modal-20250320T022412Z-001.zip解压缩并且分别重命名为data_multi_modal和humaneva_multi_modal)。生成的gif存放在inference目录下zero_shot_<INDEX>下的out目录下。新建一个data目录,将

qq_52643100的博客 831

Java基础知识回顾

关于JavaSE的一些比较基础的内容回顾,也是开始准备秋招和实习了qwq

backordinary的博客 1112

机器学习(三) ----------线性回归算法(梯度下降+正则化)

线性回归算法在机器学习中具有核心地位,它以其简单性和直观性为基础,为理解数据间的关系提供了基本框架。作为许多复杂算法的基础,线性回归不仅用于预测目标变量,还用于解释自变量对目标的影响。同时,它也是机器学习入门的经典算法,对于推广机器学习知识和技术具有重要意义。

2301_77539454的博客 1865

JAVA基础知识回顾

JAVA基础知识回顾 晚间窗外吹来的风令人清醒,喝一口杯中的温水,适合回顾下JAVA基础知识,温故而知新。 JAVA的版本 JAVA1.5(JDK5.0)是一重大版本,新增了自动装箱拆箱、枚举、静态导入、可变参数、内醒等功能。 JAVA1.8(JDK8.0)目前较为常用,目前国内大部分公司使用的都是JDK8.0。 JAVA平台版本 J2SE:标准版,为开发普通桌面和商务应用程序提供的解决方案是其他两者的基础,可完成一些桌面程序的开发。 J2ME:小型版,为开发电子消费产品和嵌入式设备提供的解决方案。 J2E

qq_43558335的博客 879

运动目标成像必学:5分钟搞懂keystone变换原理与避坑指南

本文深入浅出地解析了雷达信号处理中的Keystone变换原理,它是解决运动目标距离徙动问题的关键技术。文章通过直观比喻和简化公式,阐述了该变换如何通过变量代换实现距离与慢时间的解耦合,将倾斜轨迹“掰直”,从而提升成像与检测性能。同时,文中重点指出了实际应用中关于大速度场景、插值误差、多目标处理及高阶运动补偿等关键避坑点,为工程实践提供了宝贵指南。

ios99的博客 403

WSL2 Ubuntu复现FoundationPose项目(docker)

复现一个基于深度学习的物体姿态估计框架FoundationPose项目,使用docker,WSL2

woaidawangwang的博客 1999

Java 进阶 01 —— 5 分钟回顾一下 Java 基础知识

试想一下,在一个项目之中,并行处理使用 Clojure 语言编写,展示层使用 JRuby/Rails,中间层则是 Java,每个应用层都将使用不同的编程语言来完成,而且,接口对每一层开发者都是透明的,各种语言之间的交互不存在任何困难,就像使用自己语言的原生 API 一样方便,因为他们最终都运行在一个虚拟机之上。由于跨平台的设计,Java 的指令都是根据栈来设计的。Java 平台上的多语言混合编程正在成为主流,通过特定领域的语言去解决特定领域的问题是当前软件开发应对日趋复杂的项目需求的一个方向。

m0_74825409的博客 1156

股票交易接口TDX量化下单接口

对于需要同时操作多只股票的投资者而言,这一功能可以一次性处理多个交易指令,大大提高了交易的效率。通过回测,投资者可以发现策略中的不足之处,进而进行优化和调整,提高策略的可靠性。根据通达信提供的安装指南,下载相应的安装程序并进行安装。这包括设置交易账户的相关信息,如账户名、密码等,以及连接到正确的交易服务器。不同的情况可能会有不同的标准,有的可能要求账户使用达到一定的时长,有的可能对账户内的资产金额有最低要求。可以通过接口提供的监控功能或者第三方工具,实时查看交易状态、交易数据等信息,确保交易按照预期进行。

2401_88470113的博客 1287

总结回顾Java基础知识:

static除了不能访问构造器,像内部类,代码快,方法,内部类,成员变量都可以修饰。static修饰的成员成为类成员,类成员属于整个类,不属于单个对象。规则:类成员不能访问实力成员,作用域,类成员作用于大于实例,随着整个类加载,很容易导致类成员加载完成,实例还未初始化引发大量错误。static修饰类叫静态内部类,只能存在于内部类,通过外部类名.调用,只能访问外部静态成员。一切接对象,不同于面向过程,将问题拆解成对象,通过对象交互关联完成任务,简单优雅,缩短项目开发时间,在此之上,有继承,多态,封装等特性。

panpanaa的博客 296

IEPE传感器4mA恒流源接口电路

另外传感器的偏置电压大概在10V多点,一般接个电容把直流分量去掉。这里我们要把恒流源的电流设置在4毫安左右,R1取33Ω差不多正好。经过CR的隔直流电路后的波形是这样的。

老白的博客 6107

ROM和RAM在单片机程序运行理解

ROM和RAM是电子设备中两种核心存储组件,主要区别在于:ROM用于长期存储系统程序、用户文件等固定数据,断电后数据不丢失,但写入速度较慢;RAM则用于临时存储运行中的程序和数据,读写速度快但断电后数据会清空。在单片机中,ROM存储程序代码和常量,RAM存储运行时的变量和数据。两者协同工作,ROM如同"永久档案库"保存必要信息,RAM则像"临时工作台"支持高速运算,共同确保设备正常运行。

qq_37999850的博客 1618

Java基础知识回顾(一):字符串小结

Java的基础知识回顾之字符串 一、引言   很多人喜欢在前面加入赘述,事实上去技术网站找相关的内容的一般都应当已经对相应知识有一定了解,因此我不再过多赘述字符串到底是什么东西,在官网中已经写得很明确了,字符串实际上是一种特殊的类,内置了一个字符数组(所以你能对它进行下标查找,包括集合的arraylist底层也是一个数组),并附加了很多其他方法,方便我们进行一些操作。有兴趣的话可以去百度中查阅...

huangxin2015的博客 383

华为OD机试 - 报文响应时间 - 贪心算法、位运算(Python/JS/C/C++ 2024 E卷 200分)

贪心算法是在每一步选择中都做出当前最优的选择,期望通过局部最优解推导出全局最优解的算法。

学Java,找哪吒 1757

Java面试基础知识回顾

Java 基础知识回顾 1. JDK 和 JRE 的区别 先从单词含义来理解这两个的区别,JDK( Java Development Kit) 意为 Java 开发工具包,而 JRE (Java Runtime Environment)意为 Java 运行时环境。 总的来说可以分为以下几个方面: 从文件结构上看,JDK 是包含了 JRE 的所有文件。 从功能上看,JDK 是一个完整的 SDK,集编译、运行等功能于一体,而 JRE 只提供运行时的环境。 从用途上来看,JDK 一般是用在开发环境上,便于编码人

qq_42499581的博客 232

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Java基础知识快速回顾

行为抽象是指对某个动作或操作进行抽象,使其可以在不同的上下文中使用。在Java中,行为抽象通常通过接口或抽象类来实现。接口可以定义一个或多个抽象方法,代表不同的行为。抽象类则可以包含抽象方法和具体方法。行为抽象允许代码根据需求动态选择、替换不同的具体行为。

百锦再的博客 1万+

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

上一篇: java基础知识回顾
下一篇: java基础知识回顾
billycoder
博客等级 码龄17年 171粉丝 188原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值