随笔分类 - Java
摘要:有人说Java是编译型的。因为所有的Java代码都是要编译的,.java不经过编译就无法执行。 也有人说Java是解释型的。因为java代码编译后不能直接运行,它是解释运行在JVM上的,所以它是解释型的。对于C和C++,它们经过一次编译之后,可以由操作系统直接执行,所以它们是编译型语言。而Java不
阅读全文
摘要:1.类加载过程 首先,jvm在执行时,遇到一个新的类时,会到内存中的方法区去找class文件,如果找到就直接拿来用,如果没有找到,就会到硬盘中去找到这个class文件,将类文件加载到方法区,在类加载时,静态成员变量加载到方法区的静态区域,非静态成员变量加载到方法区的非静态区域,加载静态成员变量的时候
阅读全文
摘要:原文地址:https://www.cnblogs.com/10158wsj/p/6782124.html?utm_source=tuicool&utm_medium=referral 排序问题一直是程序员工作与面试的重点,今天特意整理研究下与大家共勉!这里列出8种常见的经典排序,基本涵盖了所有的排序
阅读全文
摘要:关于Java线程池的参数设置。线程池是Java多线程里开发里的重要内容,使用难度不大,但如何用好就要明白参数的含义和如何去设置。干货里的内容大多是参考别人的,加入了一些知识点的扩充和看法。希望能对多线程开发学习的童鞋有些启发和帮助。 一、Threa 关于Java线程池的参数 关于Java线程池的参数
阅读全文
摘要:类和对象的关系: 类是一个抽象的概念,是具有相同属性和行为的一组对象的集合,用于创建对象;对象是类的具体实现,是客观真实存在的事物。 抽象类和普通类的区别: 抽象类是概念的抽象,而普通类是事物的抽象(成了概念),那么抽象类就不可以有实例了。
阅读全文
摘要:线程池存在哪些状态,这些状态之间是如何进行切换的呢? 线程池的种类有哪些? 创建线程池需要哪些参数,这些参数的具体含义是什么? 将任务添加到线程池之后运行流程? 线程池是怎么做到重用线程的呢? 线程池的关闭 首先回答第一个问题:线程池存在哪些状态;查看ThreadPoolExecutor源码便知晓:
阅读全文
摘要:此题考察的是类加载器实例化时进行的操作步骤(加载–>连接->初始化)。 类的实例化顺序:先静态再父子 父类静态变量->父类静态代码块->子类静态变量->子类静态代码块->父类非静态变量(父类实例成员变量)->父类构造函数->子类非静态变量(子类实例成员变量)->子类构造函数。
阅读全文
摘要:1.首先说运行速度,或者说是执行速度,在这方面运行速度快慢为:StringBuilder > StringBuffer > String String最慢的原因: String为字符串常量,而StringBuilder和StringBuffer均为字符串变量,即String对象一旦创建之后该对象是不
阅读全文
摘要:static指的是类的静态成员,实例间共享 volatile跟Java的内存模型有关,线程执行时会将变量从主内存加载到线程工作内存,建立一个副本,在某个时刻写回。valatile指的每次都读取主内存的值,有更新则立即写回主内存。 理解了这两点,逐句再来解释你的困惑: “既然static保证了唯一性”
阅读全文
摘要:使用前注意事项:1、由于Java面向对象编程的特性, 在命名时应尽量选择名词 2、驼峰命名法(Camel-Case): 当变量名或函式名是由一个或多个单字连结在一起,而构成的唯一识别字时,首字母以小写开头,每个单词首字母大写(第一个单词除外)。 如:myFirstName 一 包名的书写规范 (Pa
阅读全文
摘要:package com.example.demo.utils; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; public class DateTimeTrans { public static void main(String[] args) {...
阅读全文
摘要:1、抽象类: 抽象类不可以被实例化; 抽象类中可以没有抽象方法;可以拥有非抽象方法或者属性; 接口与抽象类中的抽象方法不能具体实现; 抽象类可以有构造函数; 抽象类中的成员变量可以被不同的修饰符来修饰; 2、接口: 接口中不能有普通数据成员,只能够有静态的不能被修改的数据成员,final表示全局,s
阅读全文
摘要:封装、继承、多态。 1、封装 封装就是将对象的属性和行为特征包装到一个程序单元(即类)中,把实现细节隐藏起来,通过公用的方法来展现类对外提供的功能,提高了类的内聚性,降低了对象之间的耦合性。 2、继承 继承是对原有类的拓展,举例说明:我现在有一个Person类,但是我想要一个学生对象,他拥有Pers
阅读全文
摘要:代理模式 代理(Proxy)是一种设计模式,提供了对目标对象另外的访问方式;即通过代理对象访问目标对象.这样做的好处是:可以在目标对象实现的基础上,增强额外的功能操作,即扩展目标对象的功能. 这里使用到编程中的一个思想:不要随意去修改别人已经写好的代码或者方法,如果需改修改,可以通过代理的方式来扩展
阅读全文
摘要:做Java开发的几乎都知JVM这个名词,但是由于JVM对实际的简单开发的来说关联的还是不多,一般工作个一两年(当然不包括爱学习的及专门做性能优化的什么的),很少有人能很好的去学习及理解什么是JVM,以及弄清楚JVM的工作原理,个人认为这块还是非常有必要去认真了解及学习的,特别是刚入门或入门不久的ja
阅读全文
摘要:一、序列化和反序列化的概念 把对象转换为字节序列的过程称为对象的序列化。 把字节序列恢复为对象的过程称为对象的反序列化。 对象的序列化主要有两种用途: 1) 把对象的字节序列永久地保存到硬盘上,通常存放在一个文件中; 2) 在网络上传送对象的字节序列。 在很多应用中,需要对某些对象进行序列化,让它们
阅读全文
摘要:1. 在java中所有的参数都是传值的,引用符号&的传递是C++中才有的;2. 在java传参中,基本类型(byte--short--int--long--float--double--boolean--char)的变量总是按值传递;3. 对于对象来说,不是将对象本身传递给方法,而是将对象的的引用或
阅读全文
摘要:今天,用Java读取配置文件占位符,使用String.Format(string format,object arg0)方法。以前只知“{0}”为索引占位符(即格式项),与参数列表中的第一个对象相对应,格式设置过程将每个格式项替换为对应对象的值的文本表示形式。但这次需将参数对象格式成一对大括号括起来
阅读全文
摘要:在工作和学习中,经常碰到删除ArrayList里面的某个元素,看似一个很简单的问题,却很容易出bug。不妨把这个问题当做一道面试题目,我想一定能难道不少的人。今天就给大家说一下在ArrayList循环遍历并删除元素的问题。首先请看下面的例子: 如果要想删除list的b字符,有下面两种常见的错误例子:
阅读全文
摘要:线程不安全的HashMap 在多线程环境下,使用HashMap进行put操作会引起死循环,导致CPU利用率接近100%,所以在并发情况下不能使用HashMap。例如,执行如下代码会引起死循环。 final HashMap<String, String> map = new HashMap<Strin
阅读全文