摘要:Thread.yield( )方法: 使当前线程从执行状态(运行状态)变为可执行态(就绪状态)。cpu会从众多的可执行态里选择。 也就是说,当前也就是刚刚的那个线程还是有可能会被再次执行到的,并不是说一定会执行其他线程而该线程在下一次中不会执行到了。 示例如下: 执行yield()方法后,可能是 t
阅读全文
摘要:要想并发程序正确地执行,必须要保证原子性、可见性以及有序性。只要有一个没有被保证,就有可能会导致程序运行不正确。 1、原子性(Atomicity) 原子性是指在一个操作中就是cpu不可以在中途暂停然后再调度,既不被中断操作,要不执行完成,要不就不执行。 如果一个操作时原子性的,那么多线程并发的情况下
阅读全文
摘要:1.读取项目内的properties文件,项目内的properties文件一般都放在resource文件夹下面, 通过getClassLoader().getResourceAsStream()来获取取InputStream。 代码如下: 2.读取指定路径的properties文件,通过Buffer
阅读全文
摘要:零、为什么要用线程池? 大量的线程会抢占cpu的资源,cpu不停的在各个线程上下文切换,上下文切换非常消耗时间。 为了避免频繁的创建和销毁线程,让创建的线程进行复用,就有了线程池的概念。 线程池里会维护一部分活跃线程,如果有需要,就去线程池里取线程使用,用完即归还到线程池里,免去了创建和销毁线程的开
阅读全文
摘要:一、基本概念 在java中,可以通过Quatz框架来实现定时任务。 Quartz主要包括以下部分: 1.scheduler:调度器,可以把任务和触发器注册到任务调度器中,然后启动调度器。 2.Trigger :触发器,包括SimpleTrigger和CronTrigger。CronTrigger可以
阅读全文
摘要:1.为什么要用数据库连接池? 最原始的数据库使用就是打开一个连接并进行使用,使用过后一定要关闭连接释放资源。由于频繁的打开和关闭连接对jvm包括数据库都有一定的资源负荷,尤其应用压力较大时资源占用比较多容易产生性能问题。由此使用连接池的作用就显现出来,他的原理其实不复杂:先打开一定数量的数据库连接,
阅读全文
摘要:1. 为什么使用线程池 诸如 Web 服务器、数据库服务器、文件服务器或邮件服务器之类的许多服务器应用程序都面向处理来自某些远程来源的大量短小的任务。请求以某种方式到达服务器,这种方式可能是通过网络协议(例如 HTTP、FTP 或 POP)、通过 JMS 队列或者可能通过轮询数据库。不管请求如何到达
阅读全文
摘要:1.Properties与ResourceBundle 两个类都可以读取属性文件中以key/value形式存储的键值对,ResourceBundle读取属性文件时操作相对简单。 2.Properties 该类继承Hashtable,将键值对存储在集合中。基于输入流从属性文件中读取键值对,load()
阅读全文
摘要:List 有序可重复 ArrayList ArrayList数据结构是数组。查询快,增删慢。ArrayList是线程不安全的,允许元素为null 。 Vector 线程安全的数组,效率较差,已经过时不用。 LinkedList LinkedList 数据结构是双向链表,插入删除比较方便。Linked
阅读全文
摘要:一、 基础 反射:在运行状态时,可以通过反射获取自身的Class信息 一般情况下,我们都是通过类实例化对象。利用反射,可以从对象得到类的信息。 核心类:Class类 二、相关方法: 先写一个简单的类来演示。 Car.java public class Car { private String bra
阅读全文
摘要:0.使用工具 使用IDEA查看源码,并安装插件 translation,随时翻译源码中的注释。 注释一定要多看,哪怕是英文的注释也必须看。很多的要点,其实都写在注释里面了!!! 1.查阅资料 可以先查看网络博客,参考前辈的心得体会进行阅读。 2.理清主要流程 先理清整体的架构设计,执行顺序。 比如线
阅读全文
摘要:JAVA中字符串类型String是不允许改变其内容的,下列语句是如何运行的:String s=new String("ABCD");s=s+"123"; 最佳回答:确实,Java中的String类型确实是不允许改变其内容的,String类型的对象一旦建立,将在堆内存当中占据一个固定的内存空间,Str
阅读全文
摘要:Java IO一、基础接口 Closeable接口:拥有close()方法,子类可以重写实现关闭的功能。 AutoCloseable接口 : java 7增加的自动关闭资源接口 二、输入流 最基本的流: 输入流InputStream 大多数输入流都是继承自InputStream 1、FileInpu
阅读全文
摘要:报错:java.io.FileNotFoundException(系统找不到指定的路径。) 解决方法: 1.检查文件路径是否正确 2.另外,使用OutputStream时,如果文件不存在,会自动创建文件。 但是,如果文件夹不存在,就会报错"系统找不到指定的路径" java.io.FileNotFou
阅读全文
摘要:java.io.FileNotFoundException:文件名、目录名或卷标语法不正确 报错原因: 文件名或文件夹名中不能出现以下字符:\ / : * ? " < > |
阅读全文
摘要:java比较两个对象,可以通过重写equals()实现。 1.比较对象时, ==比较的是地址,而equals()比较的是对象内容 2.重写equals()方法必须重写hashCode() 示例代码如下: Person.java 可以自动生成get()、set()、构造函数、equals()、hash
阅读全文
摘要:假如生活欺骗了你,不要悲伤,不要心急!忧郁的日子里须要镇静:相信吧,快乐的日子将会来临!心儿永远向往着未来;现在却常是忧郁。一切都是瞬息,一切都将会过去;而那过去了的,就会成为亲切的怀恋。 阶段性总结: 201805 : 反思一下自己的动手能力。老大交给我一个很简单的任务。。我做了两个月,结果让她很
阅读全文
摘要:一、注解: 我们可以通过定义注解,使用注解来方便地调用某些数据。 二、java内建注解: 比如@override、@deprecated等,重写方法时会使用@override,而当某些类或方法已经被摒弃时则会出现 @deprecated 三、元注解: 元注解的作用就是负责注解其他注解。 包括@Tar
阅读全文
摘要:java.lang.OutOfMemoryError: Java heap space 报错原因: JVM(java虚拟机)内存不足。比如一次性从数据库取出超大量数据时,内存可能会不够。滥用对象也可能导致堆内存不足。 解决方案: 加大JVM内存.参数如下: -Xms 设置JVM初始化堆内存大小 -X
阅读全文
摘要:一.printf大法. 在程序内打印某些变量值或者标记,缩小bug的范围,判定出错之处. 前端代码也可以用简单的alert弹窗或者console.log打印查看值 二.断点调试 1.设置断点,单步调试,一步一步跟踪 step into:单步执行,遇到方法就进入 step over:单步执行,遇到方法
阅读全文