![](https://img-blog.csdnimg.cn/20200624102849719.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
Java
文章平均质量分 79
java
风中的默默
1998年过去了,我们很怀念它
展开
-
JAVA基础部分
JAVAEE.基础部分:RowId = 1环境变量DOS命令:JDK–JRE–JVMJDK: JRE+工具JRE: JVM+类库javac HelloWorld.java -->生成HelloWorld.class 字节码文件,即电脑看的文件Java HelloWorld -->执行的文件环境变量程序的执行需要外部指令javac,但是javac只存在于java安装目录...原创 2019-12-16 20:55:45 · 11690 阅读 · 2 评论 -
集成activiti步骤
集成工作流原创 2022-06-15 16:21:55 · 3964 阅读 · 1 评论 -
Tomcat相关详解
目录1. Tomcat1.1 Tomcat目录1.2 配置tomcat1.3 修改端口号1.4 首页目录1.5 常见网页状态码1.6 手动创建工程1.7 执行流程2. 虚拟路径与虚拟主机2.1 虚拟路径2.2 虚拟主机3. Eclipse集成Tomcat3.1 tomcat目录3.2 运行时环境3.3 集成环境配置1. Tomcat1.1 Tomcat目录bin:可执行文件(startup.bat shutdown.bat)conf:配置文件(server.xml)lib:tomcat依原创 2020-03-11 21:07:42 · 1182 阅读 · 1 评论 -
request.getParameter(“参名”) 中文乱码解决方法
原:String groupName = getRequest().getParameter("groupName"); 新:String groupName = StringUtils.isEmpty(getRequest().getParameter("groupName")) ? "" : new String(getRequest().getParameter("groupName").getBytes("iso-8859-1"), "utf-8"); 分析:原因:Http请求传输.原创 2020-10-09 12:06:34 · 3861 阅读 · 0 评论 -
JAVA类加载机制
文章目录类加载过程1. 加载2. 验证(了解)3. 准备3.1 内存分配3.2 初始化类型4. 解析(了解)5. 初始化6. 使用(了解)7. 卸载(了解)接口与类加载过程区别例题学习类加载过程类加载过程:即JVM虚拟机把.class文件中类信息加载进内存,并进行解析生成对应的class对象的过程。比如:JVM在执行某段代码时,遇到了class A, 然而此时内存中并没有class A的相关信息,于是JVM就会到相应的class文件中去寻找class A的类信息,并加载进内存中,这就是我们所说的类加原创 2020-07-31 14:17:01 · 3279 阅读 · 0 评论 -
java读取配置文件
pro.propertiesclassName=cn.itcast.domain.StudentmethodName=sleepReflectTest.java //1.加载配置文件 //1.1创建Properties对象 Properties pro = new Properties(); //1.2加载配置文件,转换为一个集合,随后获取class目录下的配置文件 ClassLoader classLoader = ReflectT原创 2020-07-30 15:07:16 · 156 阅读 · 0 评论 -
永久代:内存溢出java.lang.OutOfMemoryError: PermGen space
目录起因结果起因搭一个项目环境时出现永久代:内存溢出错误结果修改tomcat VM自变量属性:原:-Xms512m -Xmx512m新:-Xms256m -Xmx512m -XX:PermSize=256m -XX:MaxPermSize=256m...原创 2020-04-29 21:45:11 · 3523 阅读 · 0 评论 -
JAVA反射
文章目录概念优点:使用方式1. 获取Class对象方式1.1 Class.forName("全类名")1.2 类名.class1.3 对象.getClass()2. Class API2.1 获取成员变量s2.2 获取构造方法s2.3 获取成员方法s2.4 获取全类名3. 使用途径概念反射:将类的各个组成部分封装为其他对象,此为反射机制优点:可以在程序运行过程中,操作这些对象。可以解耦,提高程序的可扩展性。使用方式1. 获取Class对象方式1.1 Class.forName(“全类名”原创 2020-07-30 14:49:12 · 135 阅读 · 0 评论 -
Lamda表达式
文章目录为什么要用Lamda表达式?我的理解是 化繁为简函数式接口:任何接口,如果只包含唯一一个抽象方法,那么它就是一个函数式接口。首先定义一个函数式接口interface ILike { void lambda(); //这个接口中只包含此一个抽象方法}实现上面的接口class Like implements ILike { @Override public void lambda () { System.out.println("Hello Lambda"); }}原创 2020-07-20 11:41:36 · 952 阅读 · 0 评论 -
JVM和GC
文章目录1 虚拟机内部构造1.1 何为虚拟机1.2 虚拟机中的线程1.3 虚拟机中的内存区域2 垃圾回收(GC)2.1 如何确定垃圾2.1.1 引用计数法2.1.2 可达性分析2.2 四种垃圾回收算法2.2.1 标记清除算法(Mark-Sweep)2.2.2 复制算法(copying)2.2.3 标记整理算法(Mark-Compact)2.2.4 分区收集算法(目前用的不多)2.3 分代收集算法2.3.1 新生代2.3.2 老年代2.3.2 永久代2.4 垃圾回收总结1 虚拟机内部构造1.1 何为虚拟机原创 2020-07-02 17:33:58 · 3496 阅读 · 0 评论 -
静态变量与非静态变量的区别?
文章目录静态变量与非静态变量的区别JAVA中初始化的顺序静态变量与非静态变量的区别java类中的变量有两种: 一种是被 static 关键字修饰的变量,叫类变量或者静态变量: 类的静态变量在内存中只有一个,java虚拟机在加载类的过程中为静态变量分配内存,静态变量位于方法区,被类的所有实例共享。静态变量可以直接通过类名进行访问,其生命周期取决于类的生命周期。 另一种没有 static 修饰,为成员变量: 而实例变量取决于类的实例。每创建一个实例,java虚拟机就会为实例变量分配一次内存,原创 2020-06-28 14:58:43 · 3517 阅读 · 0 评论 -
为什么ArrayList增删效率低,及其扩容机制
文章目录1. 为什么ArrayList增删效率低2. ArrayList扩容机制1. 为什么ArrayList增删效率低首先,modCount是ArrayList的父类AbstractList中的变量,记录的是关于元素的数目被修改的次数,默认值为0。1, 增与删操作时, modCount一定会进行修改。改和查时modCount一定不会修改。2, 扩容操作会导致数组复制,批量删除会有找出两个集合交集的操作及数组复制操作,因此,增、删都相对低效。 而 改、查比较高效。2. ArrayList扩原创 2020-06-28 14:39:13 · 4384 阅读 · 0 评论 -
String, StringBuffer与StringBuilder的区别?
文章目录StringStringBufferStringBuilderJava9的改进大部分情况下:StringBuilder > StringBuffer > StringStringString类是不可变类,即一旦一个String对象被创建以后,包含在这个对象中的字符序列是不可改变的,直至这个对象被销毁。如果对 String 类型进行改变,其实等同于生成了一个新的 String 对象,原对象如果没有被再次引用 则会被GCStringBufferStringBuffer对象则原创 2020-06-24 11:35:27 · 3187 阅读 · 0 评论 -
foreach删除元素为什么会报错?
2020-06-23foreach删除元素为什么会报错Math.max() 返回两个数中大的那个,源码里是一个三元运算符final: final修饰的类不能被继承。(Sting就是一个被final修饰的类,我们只能用,不用继承) final修饰的变量,是一个常量,只能赋值一次。protected: 可以被子类,同package下类使用,不对外公开的访问修饰符 在非static修饰下,子类不能通过new父类对象直接调用default(不写修饰符) 在一个包下的能访问transient :原创 2020-06-23 18:14:00 · 11629 阅读 · 0 评论 -
java中的三种拷贝方式
java中的三种拷贝方式第一种 基本数据类型: 八大基本数据类型: int apples = 5; int pears = apples;第二种 对象 浅拷贝: Student stu1 = new Student(); stu1.setNumber(12345); Student stu2 = stu1; System.out.println("学生1:" + stu1.getNumber()); // 学生1:12345 System.out.println("学生2:" +原创 2020-06-23 18:13:04 · 11984 阅读 · 0 评论 -
为什么BigDecimal会丢失精度?
为什么BigDecimal会丢失精度?BigDecimal b1 = new BigDecimal(0.1);BigDecimal b2 = new BigDecimal(0.5);System.out.println("b1="+b1+"\nb2="+b2);---------------结果----------------------b1=0.1000000000000000055511151231257827021181583404541015625b2=0.5float和double原创 2020-06-23 18:12:22 · 4559 阅读 · 0 评论