
日常学习
文章平均质量分 69
用于每日专业课学习重点、难点、不足总结
TomLazy
及时当勉励 岁月不待人
展开
-
【Java基础】Java中将 int[] 数组 转换为 List(ArrayList) -- Offer2.p198
在Java中,如果你想将 int[] 数组 转换为 List,那么推荐你采用stream进行转换(JDK8及以上)。转载 2023-03-27 20:51:14 · 492 阅读 · 0 评论 -
【Java基础】Stack转为List -- Offer2.p184
因为stack实现了List接口,则可以将stack转换为List.转载 2023-03-22 20:39:17 · 304 阅读 · 0 评论 -
【Java基础】String、StringBuffer和StringBuilder -- Offer2.p50
String 类型和 StringBuffer 的主要性能区别:String 是不可变的对象, 因此在每次对 String 类型进行改变的时候,都会生成一个新的 String 对象,然后将指针指向新的 String 对象,所以经常改变内容的字符串最好不要用 String ,因为每次生成对象都会对系统性能产生影响,特别当内存中无引用对象多了以后, JVM 的 GC 就会开始工作,性能就会降低。在String的赋值操作中,若字符串常量池中没有该字符串,将会在字符串常量池中创建一个新的字符串。转载 2023-02-15 09:50:24 · 83 阅读 · 0 评论 -
【Java基础】集合详解 -- p293
Java的集合类是一些非常实用的工具类,主要用于存储和装载数据 (包括对象),因此,Java的集合类也被成为容器。在Java中,所有的集合类都位于java.util包下,这些集合类主要是基于两个根接口派生而来,它们就是 Collection和 Map。转载 2023-02-07 20:11:28 · 77 阅读 · 0 评论 -
【Java基础】内部类标识符 -- p291
由于每个类都会产生一个.class文件,其中包含了如何创建该类型的对象的全部信息(此信息产生一个”meta-class”,叫做Class对象),你可能猜到了,内部类也必须生成一个.class文件以包含它们的Class对象信息。这些类文件的命名有严格的规则:外围类的名字,加上“$”,再加上内部类的名字。转载 2023-02-07 19:30:26 · 163 阅读 · 0 评论 -
【Java基础】类、对象和实例的理解 -- p290
类可以理解为一种类型,对象是类中的一种实例。用类创建对象的过程叫做实例化。转载 2023-02-07 17:32:09 · 408 阅读 · 0 评论 -
【Java基础】内部类与初始化 -- p289
在Java语言中,可以把一个类定义到另外一个类的内部,在类里面的这个类就叫做内部类,外面的类叫做外部类。在这种情况下,这个内部类可以被看成外部类的一个成员(与类的属性和方法类似)。还有一种类被称为顶层(Top-level)类,指的是类定义代码不嵌套在其他类定义中的类。转载 2023-02-07 16:49:15 · 946 阅读 · 0 评论 -
【Java基础】闭包与回调 -- p278
闭包(Closure)是一种能被调用对象,它保存了创建它的作用域的信息。回调函数,简称回调,是指通过函数参数传递到其他代码的某一块可执行代码的引用,这一设计允许了底层代码调用在高层定义的子程序。 简单来说:A调用了B的b ()方法,那b方法如果包含对A中实现的逻辑的调用,这个过程就被称作回调。转载 2023-02-07 15:43:32 · 259 阅读 · 0 评论 -
【Java基础】类方法和实例方法 -- p278
类中的方法分为类方法和实例方法。类方法:类中用 static 修饰的方法。实例方法:也称为对象方法,除了类方法都是实例方法。转载 2023-02-06 20:12:49 · 520 阅读 · 0 评论 -
【Java基础】new一个接口 -- p277
接口不能被实例化,只能通过多态的形式,让子类实例化。接口的new是使用了匿名内部类实现了接口,而不是new一个新对象。转载 2023-02-06 19:49:21 · 2145 阅读 · 0 评论 -
【Java基础】Java中不能被实例化的类 -- p267
在Java中不能被实例化的类一般分为以下3种情况。 1)抽象类 因为抽象类里面的方法尚未定义如何实现,所以无法进行实例化; 2)内部类 因为内部类的实例化需要借助于外部类,所以某种程度上说是不能被直接实例化的; 3)将构造函数的权限设为private 这种情况常见于官方提供的类中,例如Math类和System类。转载 2023-02-06 16:47:38 · 2711 阅读 · 0 评论 -
【Java基础】JDK16:record -- p258
Java 编译器将为 record 类型生成 equals(),hashCode(),toString() 方法,以及生成适当的构造函数,并且为所有字段生成 getter 和 setter。在 Java 中,record 关键字用于声明充当“数据载体”的特殊类类型,即领域模型类或 POJO 类。record 类型功能在 JDK 14(预览版)中进行审查,并将在之后的 JDK 版本中完成。使用 record 类型,可以在编写 POJO 类时节省大量时间。转载 2023-02-05 01:18:45 · 272 阅读 · 0 评论 -
【Java基础】Java9新特性:接口的private方法 -- p255
从Java 9开始,我们可以在Interface接口中添加private的私有方法和私有静态方法。这些私有方法将改善接口内部的代码可重用性。例如,如果需要两个默认方法来共享代码,则私有接口方法将允许它们共享代码,但不将该私有方法暴露给它的实现类调用(后文中会给大家举一个例子)。接口中private方法不能是abstract抽象方法。因为abstract抽象方法是公开的用于给接口实现类实现的方法,所以不能是private。接口中私有方法只能在接口内部的方法里面被调用。转载 2023-02-05 00:38:45 · 166 阅读 · 0 评论 -
【Java基础】工厂方法模式 -- p252
工厂方法模式(Factory Method Pattern),也叫虚拟构造器(Virtual Constructor)模式或者多态工厂(Polymorphic Factory)模式,它属于类创建型模式。在工厂方法模式中,工厂父类负责定义创建产品对象的公共接口,而工厂子类则负责生成具体的产品对象,这样做的目的是将产品类的实例化操作延迟到工厂子类中完成,即通过工厂子类来确定究竟应该实例化哪一个具体产品类。转载 2023-02-05 00:18:04 · 83 阅读 · 0 评论 -
【Java基础】Readable接口 -- p247
你会发现Readable没有用作Java标准库中其他任何方法的参数——它是单独为Scanner创建的,因此Scanner没有将其参数限制为某个特定类。通过这种方式,Scanner可以与更多的类型协作。转载 2023-02-04 16:59:10 · 243 阅读 · 0 评论 -
【Java基础】抽象类可以创建对象吗?-- p244
抽象类不能创建对象,其创建对象没有意义,但是抽象类可以保存一类事物具备的共同属性和行为,让子类进行继承。转载 2023-02-04 16:24:20 · 1888 阅读 · 0 评论 -
【Java基础】适配器模式 -- p241
将一个接口转换成客户希望的另一个接口,使接口不兼容的那些类可以一起工作,其别名为包装器(Wrapper)。适配器模式既可以作为类结构型模式,也可以作为对象结构型模式。在适配器模式中,我们通过增加一个新的适配器类来解决接口不兼容的问题,使得原本没有任何关系的类可以协同工作。转载 2023-02-04 14:50:15 · 88 阅读 · 0 评论 -
【Java基础】接口可以被继承?-- p240
接口可以被接口继承,抽象类可以继承实体类。转载 2023-02-04 14:30:46 · 2628 阅读 · 0 评论 -
【Java基础】策略模式 -- p238
策略设计模式一般使用的场景是,多种可互相替代的同类行为,在具体的运行过程中根据不同的情况,选择其中一种行为来执行,比如支付,有微信支付,支付宝支付,银行卡支付,那么到底使用哪种支付方式,这是由用户来决定的,再比如购物优惠,用户可以选择使用优惠券,可以选择满减优惠,以及其他优惠方式,到底是使用优惠券,还是满减,或者其他优惠方式,还是由用户来决定,类似的场景我们都可以考虑使用策略设计模式,可能对于类似的场景我们最常用的还是ifelse,ifelse的缺点是缺少扩展性,从6大原则来说不符合。转载 2023-02-04 13:45:48 · 94 阅读 · 0 评论 -
【Java基础】Vector 类
Vector 类实现了一个动态数组。Vector 主要用在事先不知道数组的大小,或者只是需要一个可以改变大小的数组的情况。转载 2023-02-02 01:01:52 · 203 阅读 · 0 评论 -
【Java基础】接口
接口(英文:Interface),在JAVA编程语言中是一个抽象类型,是抽象方法的集合,接口通常以interface来声明。转载 2023-01-31 00:35:28 · 77 阅读 · 0 评论 -
【Java基础】try和catch的用法
程序的流程是:运行到try块中,如果有异常抛出的话,程序转向执行finally块的代码。因为没有处理异常,所以遇到异常后,执行完finally后,方法就已抛出异常的方式退出了。程序的流程是:运行到try块中,如果有异常抛出,则转到catch块,catch块执行完毕后,执行finally块的代码,再执行finally块后面的代码。程序的流程是:运行到try块中,如果有异常抛出,则转到catch块去处理。如果没有异常抛出,执行完try块,也要去执行finally块的代码。然后执行finally块后面的语句。转载 2023-01-31 00:16:08 · 2627 阅读 · 0 评论 -
【Java基础】JDK9 模块化
本文所有内容均摘录自互联网,文末有参考文献,仅做整理和记录。转载 2023-01-30 22:30:41 · 582 阅读 · 0 评论 -
【Java基础】设计模式
设计模式设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。毫无疑问,设计模式于己于他人于系统都是多赢的,设计模式使代码编制真正工程化,设计模式是软件工程的基石,如同大厦的一块块砖石一样。项目中合理的运用设计模式可以完美的解决很多问题,每种模式在现在中都有相应的原理来与之对应,每一个模式描述了一个在我们周围不断重复发生的问题,以及该问题的核心解决方案,这也是它能被广泛应用的原因。转载 2023-01-30 15:30:51 · 86 阅读 · 0 评论 -
【Java基础】CLASSPATH
在JDK1.5之后的版本,配置Java环境变量的时候我们不再需要配置classpath,只需要配置Java_Home以及path即可!转载 2023-01-30 00:18:10 · 759 阅读 · 0 评论 -
【Java基础】枚举
Java 枚举是一个特殊的类,一般表示一组常量,各个常量使用逗号 , 来分割。转载 2023-01-29 13:35:18 · 295 阅读 · 0 评论 -
【Java基础】实例与实例化
java中实例就是对象,是某个类的一个对象。转载 2023-01-29 12:56:14 · 2467 阅读 · 0 评论 -
【Java基础】可变参数
可变参数,可变参数,顾名思义,当一个方法需要处理任意多个相同类型的对象时,就可以定义可变参数。转载 2023-01-29 01:17:15 · 457 阅读 · 0 评论 -
【Java基础】JVM garbage collection and a paging memory architecture
这么大的空间,为了便于管理,首先按照特定粒度划分一个最小的基本单 元,叫做页(Page),比如等于64kb吧,页有三类:Free,Reserved,Committed,Free的页对于进程来说,等于是不可用的, 任何读写free页的行为都是极其无耻卑劣和下流的,要被OS严惩不贷(可以放心的是,你的Java程序不会发生这类行为,只有那些可以直接内存寻址的语 言才可能发生);这是因为JVM的堆(指Java heap)内存是动态扩张的,但它又总是连续的(JVM为了便于垃圾清理),怎么做到这样呢?转载 2023-01-28 22:54:12 · 116 阅读 · 0 评论 -
【Java基础】浅谈垃圾回收
在Java程序的生命周期中,Java运行环境提供了一个系统的垃圾回收器线程,负责自动回收那些没有被引用的对象所占用的内存,这种清除无用对象进行内存回收的过程就叫作垃圾回收 (garbage collection)。Java提供自动内存回收的功能,可以让程序员减轻许多内存管理的负担,同时也减少犯错的机会。转载 2023-01-28 18:18:31 · 516 阅读 · 0 评论 -
【Java基础】C++中对象创建的两种方式
在C++中,类的对象建立分为两种,一种是静态建立,如A a;另一种是动态建立,如A* ptr=new A;这两种方式是有区别的。转载 2023-01-28 14:57:56 · 124 阅读 · 0 评论 -
【Java基础】本地方法的理解(native方法)
本地方法就是java代码里面写的native方法,它没有方法体。是为了调用C/C++代码而写的。在JNI程序里面使用。转载 2023-01-28 14:43:28 · 1997 阅读 · 0 评论 -
【Java基础】容器详解
在Java当中,有一个类专门用来存放其它类的对象,这个类就叫做容器,它就是将若干性质相同或相近的类对象组合在一起而形成的一个整体。转载 2023-01-27 22:25:50 · 570 阅读 · 0 评论 -
【Java基础】Math.Random( )和 random( )的区别
Random( )该构造方法使用一个和当前系统时间对应的相对时间有关的数字作为种子数,然后使用这个种子数构造Random对象制定一个种子数进行创建生成伪随机数,区间内部的数字生成的几率时均等的。转载 2023-01-27 22:03:16 · 312 阅读 · 0 评论 -
【Java基础】将一个负数强转成char会出现什么结果呢?
转型被用来将一个数值从一种类型转换到另一种类型。下面的程序连续使用了三个转型。那么它到底会打印出什么呢?转载 2023-01-27 20:29:54 · 439 阅读 · 0 评论 -
什么是交叉(cross-over)网线?
什么是交叉(cross-over)网线?转载 2022-09-13 16:03:32 · 1313 阅读 · 0 评论 -
Clarify concepts: WANET, MANET, WMN, WSN, DTN
Take nodes to understand the characterizes of several type of networks related to wireless ad hoc network.以节点为例,介绍了几种与无线自组织网络相关的网络的特点。翻译 2022-04-24 14:46:26 · 895 阅读 · 0 评论 -
单工、半双工、全双工一点通
作为一名计算机专业的学生,会经常听到XXX用的是半双工方式、XXX又用的是全双工,串口通信又怎么怎么样,这个通信协议又是怎么样,但对于这些并没有真正掌握,也就是个一知半解,故查阅资料,记录一下。原创 2021-03-11 17:09:35 · 1459 阅读 · 0 评论 -
巧用Sublime解决Python中常出现的TabError: inconsistent use of tabs and spaces in indentation错误
今天在树莓派中使用Python编写程序,运行时报出`TabError: inconsistent use of tabs and spaces in indentation`错误,后经查阅解决,故记录之。原创 2021-03-08 15:06:35 · 653 阅读 · 0 评论 -
并发、并行、串行、同步、异步一点通
1.并发编程又叫多线程编程。 在程序中,往往有很多很耗时的工作,比如上传文件、下载文件、跟客户聊天需要长时间建立连接。这种时候,一个线程是服务不了多个用户的,会产生因为资源独占产生的等待问题。并发的实质是一个物理CPU(也可以多个物理CPU) 在若干道程序之间的多路复用,并发性是对有限物理资源强制行使多用户共享以提高效率(买票问题并发进行)。 并发当有多个线程在操作时,如果系统只有一个CPU,则它根本不可能真正同时进行一个以上的线程,它只能把CPU运行时间划分成若干个时间段,再将时间 段分转载 2021-03-08 09:38:16 · 345 阅读 · 0 评论