java基础
Briant996
拒绝八股,实践出真知
展开
-
Java 学习积累
InputStreamReader1)字节流到字符流的桥梁怎么理解?1、计算机存储的单位是字节,如尽管txt文本中有中文汉字这样的字符,但是对计算机而言,其是字节形式存在的 2、字节流读取是单字节读取,但是不同字符集解码成字符需要不通过个数,因此字节流读取会报错 3、 那么就需要一个流把字节流读取的字节进行缓冲而后在通过字符集解码成字符返回,因而形式上看是字符流 4、InputStreamReader流就是起这个作用,实现从字节流到字符流的转换2)使用指定的字...原创 2020-09-16 23:40:21 · 129 阅读 · 0 评论 -
java使用注意问题
迭代器删除元素在使用Iterator的时候,迭代器会新建一个线程,把原来的线程中的对象重新拷贝一份,在进行删除,修改等操作时,原来的线程只负责迭代,而Iterator负责迭代和删除操作,Iterator每次迭代都会检查迭代器里的对象和原线程中的对象个数是否一致,不一致则抛出:ConcurrentModificationException。Iterator中的removedefault void remove()从基础集合中移除这个迭代器返回的最后一个元素(可选操作)。两个线程中都删除,.原创 2020-08-13 19:36:32 · 137 阅读 · 0 评论 -
多线程顺序打印数字
多线程顺序打印1234,利用futrue.get()阻塞线程public class PoolPrint { public static void main(String[] args) throws ExecutionException, InterruptedException { test(); } public static void tes...原创 2020-04-11 15:06:32 · 298 阅读 · 0 评论 -
java线程安全的集合
java.util.concurrent 包提供了映射、 有序集和队列的高效实现:ConcurrentHashMap、 ConcurrentSkipListMap 、ConcurrentSkipListSet 和 ConcurrentLinkedQueue。允许并发地访问数据结构的不同部分来使竞争极小化。映射条目的原子更新map.compute(word,(k,v)->v == null...原创 2020-04-09 22:29:36 · 523 阅读 · 0 评论 -
java核心技术10阅读(十四)-线程同步
为了避免多线程引起的对共享数据的误读,必须学习如何同步存取,多线程之间是竞争关系,负载较大的线程可能会将运行权较出,变成等到状态,从而造成其他线程的误读或者误存。有两种机制防止代码块受并发访问的干扰。一是提供一个 synchronized关键字,提供锁区域。LOCK对象myLock.lock(); // a ReentrantLock object,构建一个可以被用来保护临界区的可重入锁。...原创 2020-04-08 18:19:47 · 129 阅读 · 0 评论 -
java核心技术10阅读(十三)-线程
线程每一个任务称为一个线程(thread), 它是线程控制的简称。可以同时运行一个以上线程的程 序称为多线程程序(multithreaded)。多进程与多线程有哪些区别呢? 本质的区别在于每个进程拥有自己的一整套变量,而线程则共享数据。多线程非常有用。例如,一个浏览器可以同时下载几幅图片。一个 Web 服务器需要同时处理几个并发的请求。图形用户界面(GUI) 程序用一个独立的线程从宿主 操作...原创 2020-04-06 12:19:35 · 119 阅读 · 0 评论 -
java核心技术10阅读(十三)-部署java应用程序
JAR文件一个 JAR 文件既可以 包含类文件,也可以包含诸如图像和声音这些其他类型的文件。创建一个新的JAR文件格式jar cvf JARFileName File File2 . . .除了类文件、图像和其他资源外,每个 JAR 文件还包含一个用于描述归档特征的清单文件(manifest )。classLoader.getResource(name) //接受的相对路径是相对于...原创 2020-04-03 11:44:59 · 140 阅读 · 0 评论 -
java核心技术10阅读(十一)-Swing组件
MVC设计模式model、view、controller对应三个对象,分别为模型、视图和控制器,有着独立的功能。然后可以存在多个视图,但是只有一个模型。控制器处理用户输入事件。每个用户 界面元素都有一个包装器类(如 JButton 或 JTextField ) 来保存模型和视图。模型类将实现一个名字以 Model 结尾的接口,每个 Swing组件都有一个相关的后缀为UI 的视图对象,例如JB...原创 2020-04-01 17:53:15 · 272 阅读 · 0 评论 -
java核心技术10阅读(十一)-事件处理
原始的 C这样的语言进行事件驱动的程序设计,那就需要编写代 码来不断地检查事件队列,以便査询操作环境报告的内容(通常这些代码被放置在包含很多 switch语句的循环体中)。显然,这种方式编写的程序可读性很差,而且在有些情况下,编码 的难度也非常大。它的好处在于响应的事件不受限制,而不像 Visual Basic这样的语言,将 事件队列对程序员隐藏起来。在 AWT所知的事件范围内,完全可以控制事件...原创 2020-03-28 22:24:03 · 177 阅读 · 0 评论 -
java核心技术10阅读(十一)-swing图形
JFrame在 Java 中,框架被设计为放置组件的容器, 可以将菜单栏和其他的用户界面元素放置在其中。在通常情 况下,应该在另一组件上绘制信息,并将这个组件添加到框 架中。JFrame 是极少数几个不绘制在画布上的 Swing组件之一。所有的 Swing组件必须由事件分派线程(event dispatch thread ) 进行配置,线程将 鼠标点击和按键控制转移到用户接口组件。调用To...原创 2020-03-27 16:21:19 · 149 阅读 · 0 评论 -
java核心技术10阅读(九)-映射
映射用来存放键 / 值对。基本映射操作HashMap和TreeMap,HashMap对键进行散列,TreeMap用键的整体顺序对元素进行排序。散列稍微快一些,如果不需要按照排列顺序访问键,就最好选择散列。...原创 2020-03-24 12:29:57 · 149 阅读 · 0 评论 -
java核心技术10阅读(八)-Java集合
集合框架Java 集合类库也将接口( interface) 与 实 现( implementation) 分离。可以使用接口引用集合类,方便切换类的使用。Queue<Customer> expresslane = new CircularArrayQueue<>(100); expressLane.add(new Customer("Harry")); //or...原创 2020-03-23 18:58:34 · 125 阅读 · 0 评论 -
java核心技术10阅读(七)-泛型程序设计
类型参数的好处Java中增加范型类之前,泛型程序设计是用继承实现的。ArrayList 类只维护一个Object 引用的数组,利用ArratList有两个问题,一个是获取值时需要强制转换,另一个是强制转换时会产生错误。使用类型参数解决:ArrayList<String> files = new ArrayList<String>() 其中String表示为Stri...原创 2020-03-21 17:24:56 · 150 阅读 · 0 评论 -
java核心技术10阅读(六)-日志记录案例
日志说明书常见操作选择一个日志记录器,并把日志记录器命名为与主应用程 序包一样的名字,例如,com.mycompany.myprog。private static final Logger logger = Logger.getLogger(“com.mycompany.nyprog”);static 防止任何变量引用的日志记录器可能会被垃圾回收默认的日志配置将级别等于或高于 INFO级...原创 2020-03-18 11:59:47 · 255 阅读 · 0 评论 -
java核心技术10阅读(五)-异常和断言
异常异常分类throwable是所有异常类的父类,Error和IOException是非受查类,由系统错误、IO读取读取错误引起,而RuntimeException是受查类,由程序本身错误引起,需要提供异常处理器,例如数组访问越界等问题。对于一个已经存在的异常类,将其抛出非常容易,在这种情况下:1 ) 找到一个合适的异常类。 2 ) 创建这个类的一个对象。 3 ) 将对象抛出。捕获异常...原创 2020-03-17 11:28:14 · 89 阅读 · 0 评论 -
java核心技术10阅读(五)-内部类和代理
内部类原创 2020-03-14 18:01:38 · 120 阅读 · 0 评论 -
java核心技术10阅读(四)-接口、lambda表达式和内部类
继承设计技巧公共操作和域放在超类中不要使用proteced受保护域,一是因为子类的的访问破环了封装性,二是因为同一个包中所有的类都能方位受保护域。*protected在同一个包中和public相同,子类能继承,在不同类中子类和父类都能访问。而在不同包中,子类和父类都不能访问。利用is-a去判断是否使用继承除非所有继承的方法都有意义, 否则不要使用继承在覆盖方法时, 不要改变预期的行为...原创 2020-01-10 14:16:43 · 183 阅读 · 0 评论 -
java核心技术10阅读(三)-反射(toString方法重写)
反射能够分析类能力的程序叫做反射java运行时,会为每一个对象加入一个运行类classm,实际上是一种类型。java虚拟机可以处理它,通过getclass、object.class以及Class.forName(“xxx”)的方式得到这个class。其次也可以通过newInstance()的方式来实例化对象。try catch 捕获异常。...原创 2020-01-05 12:54:53 · 690 阅读 · 0 评论 -
java核心技术10阅读(三)-继承
类、超类、子类子类结成超类方法和域,但是不能直接访问超类的域。可以使用超类方法访问,也可以使用super关键字解决。super指示编译器调用超类方法的特殊关键字,不能赋值。。使用super 调用构造器的语句必须是子类构造器的第一条语句。关键字this 有两个用途: 一是引用隐式参数, 二是调用该类其他的构造器, 同样,super 关键字也有两个用途:一是调用超类的方法,二是调用超类的构造器...原创 2019-12-28 15:14:21 · 103 阅读 · 0 评论 -
java核心技术10阅读(二)-面向对象编程2
静态域Static静态域被称为类域,它属于这个类,而不属于某个实例对象,是这个类所有实例的公有对象。静态域常量以static+final来命名,它能作为实例对象的公有方法或者常量但是不能被修改,例如Math.PI。静态域方法是不能调用实例域对象但能调用静态变量的方法,以static为前缀。其实相当于静态方法没有隐式参数。例如Math.pow(x, y)。也可以将静态域的前缀省略而最好利用类名...原创 2019-12-24 20:03:56 · 97 阅读 · 0 评论 -
java核心技术10阅读(二)-面向对象编程
基于对象编程和基于过程编程的区别在于,基于过程先设计解决算法再设计数据结构形成运行的程序,而基于对象是先寻找数据结构再设计算法的反向过程。这样能帮助我们更好的封装数据,提高方法的一个复用性,而不好的地方是封装过程的处理需要额外的时间。...原创 2019-12-21 10:07:58 · 134 阅读 · 0 评论 -
java核心技术10阅读(一)
Unicode编码与JAVA 基本变量char、String类之间的关系unicode是为了解决各国不同语言编码多样化问题而制定的统一编码标准。在unidecode中,利用码点,即前缀为U+,后缀为16进制的数组合起来代表字符对应的代码值,例如U+0041代表字符"A"。其标准是16为进制书写,码点可以分为17个级别,第一个代码级别称为基本的多语言级别,从U+0000到U+00FFFF,其余级...原创 2019-12-18 21:55:28 · 153 阅读 · 0 评论