![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
----【java】
文章平均质量分 53
嘉嘉的读书笔记
这个作者很懒,什么都没留下…
展开
-
常用Linux命令使用
常用Linux命令使用。原创 2022-08-14 23:34:10 · 104 阅读 · 1 评论 -
JVM的运行及垃圾回收
我们日常写的jar、war文件通过打包编译生成.class文件,通过类加载类器进行加载,放入metaspace空间。原创 2022-07-10 11:53:58 · 196 阅读 · 1 评论 -
服务查看线上日志常用命令
cd /data/logs/文件// 查看最后1000行的debug.logtail -fn 1000 debug.log// 显示最后1000的包含关键词的信息tail -n 1000 debug.log | grep "关键词"// 动态的查看日志tail -f debug.log// 查看关键词附近的日志cat -n debug.log | grep "关键词"// 从420行开始查,显示前20行的信息,即420-440行cat -n debug.log | tail -原创 2020-12-01 14:13:53 · 223 阅读 · 1 评论 -
字符串和对象对空
字符串判空:常用,效率高if(str==null || str.length()<=0)常用,效率也高if (str == null || str == "")高大上,效率不明StringUtils.isBlank(str)效率高,有兼容性问题StringUtils.isEmpty(str)常用,效率低str==null || str.equals("")对象判空:Objects.isNull(object)当前端传过来空对象,直接obj==null是无法判断出来原创 2020-11-24 20:38:20 · 178 阅读 · 1 评论 -
解决:ClassNotFoundException: org...dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
配置了User Libraries(名为struts-2.2.3, 可供多个项目多次使用), 然后直接把struts-2.2.3引入过来(这个包不会真正的放在项目文件夹下):可是一运行就出现如题所示的错误,程序无法启动,具体错误如下:严重: Exception starting filter struts2java.lang.ClassNotFoundException: org.apac...原创 2019-11-10 23:30:34 · 139 阅读 · 4 评论 -
Java热部署
热部署是指在你修改项目BUG的时候对JSP或JAVA类进行了修改在不重启WEB服务器前提下能让修改生效。但是对配置文件的修改除外!1、直接把项目web文件夹放在webapps里。2、在tomcat\conf\server.xml中的内部添加标签:docBase:项目路径,可以使用绝对路径或相对路径,相对路径是相对于webappspath:访问项目的路径,如:http://127.0.0....原创 2019-11-02 15:35:42 · 150 阅读 · 4 评论 -
线程同步问题
多个线程在执行的过程中的不确定性引起执行结构的不稳定,同时多个线程对同一数据的共享操作,造成操作的不完整性,破坏数据。当某个线程在操作车票过程中,尚未操作完成时,其他线程也参与进来,操作车票,使车票的数据共享,出现线程安全问题。那么可以通过同步代码块和同步方法的方式来解决线程安全问题,实现线程的同步。方式 1 . 同步代码块1.1通过多线程继承方式实现代码块同步机制public clas...原创 2019-08-14 21:35:31 · 140 阅读 · 2 评论 -
异常处理
Java在执行过程中所发生的异常事件可以分为两类:Error和Exception.Error:是指Java虚拟机无法解决的严重问题。如JVM内部错误,资源耗尽的严重情况。像栈溢出StackOverflowError和堆溢出OOM.一般出现这样的问题,不在编写针对性的代码进行处理。Exception:是因为变成错误或偶然的外在因素导致的一般性的问题,可以使用针对性的代码进行处理。如空指针的访问,...原创 2019-08-11 21:47:28 · 133 阅读 · 0 评论 -
Lock锁
Lock是显示锁,需要手动的开启和关闭,与之对应的另一种锁是synchronized锁,是隐式锁,出了作用域之后能够自动释放。Lock锁的使用:还是以车站多窗口卖票为例class Window implements Runnable{ private int ticket=100; // 1.实例化lock private ReentrantLock lock=new...原创 2019-08-15 21:32:38 · 149 阅读 · 2 评论 -
String类总结
有这样一道题 String s=new String("abc"); 这样的方式创建对象,在内存中创建了几个对象?答案:两个,一个是堆空间中new出的结构,另一个是char[]对应的常量池中的数据(“abc”)而这就涉及到了关于String类的使用String类,代表字符串,Java程序中所有字符串字面值都作为此类的实例实现。String对象的字符串内容是存储在一个字符串数组value[...原创 2019-08-25 21:34:47 · 104 阅读 · 1 评论 -
Springboot环境搭建及运行
SpringBoot是SpringMVC的升级版,零配置,内置了tomcat,直接一行命令整个项目就可以跑起来,在传统的javaee框架使用基础上进行了更高层次的封装,简化了spring和其它框架整合过程。还有 hibernate jpa redis mybatis…等框架。运用IDEA搭建环境:1.打开IDEA浏览器,选择file-new-Spring Initializr2.默认选择D...原创 2019-08-26 11:50:11 · 249 阅读 · 1 评论 -
Lambda表达式及方法的引用
Lambda是java8的一个新特性,是一个匿名函数,所有的匿名实现类都可以用Lambda表达式来写,使用箭头操作符进行标识,它本质上是作为一个接口的实例出现的,因此用Lambda表达式,该接口一定是函数式接口。Lambda表达式在进行操作的过程中,主要针对以下参数和返回值类型进行设置1.无参无返回值的类型@Testpublic void test(){ Runnable run=...原创 2019-09-08 19:36:37 · 150 阅读 · 2 评论 -
java反射获取运行时类的结构
我们可以通过反射,获取对应的运行时类中所有的属性,方法,构造器,父类,接口,父类的泛型,包,注解,异常等获取属性的方法:Class cla= Person.class;// getFields():获取当前与运行时类及其父类中声明为public访问权限的属性Field[] fields = cla.getFields();for (Field f:fields){ System....原创 2019-09-15 21:53:51 · 143 阅读 · 1 评论 -
注解的使用
一、注解注解是代码里的特殊标记,这些标记可以在编译,类加载,运行时被读取,并执行相应的处理。通过使用Annotation,程序员可以在不改变原有的逻辑下,在源文件中嵌入一些补充信息,代码分析工具,开发工具和部署工具可以通过这些补充信息进行验证或者进行部署。二、JDK内置的三个注解@Override:限定重写父类的方法,该注解只能用于方法@Deprecated:用于表示所修饰的元素已过时,通...原创 2019-09-22 20:47:26 · 128 阅读 · 3 评论 -
多线程创建的方式
一、了解程序,进程和线程程序:是为了完成特定任务,用特定语言编写的一组指令的集合,是一段静态代码。进程:是程序的一次执行,是进行中的程序,是动态的,有生命周期的。线程:是进程的细化,是程序内部的一条执行路径,每个进程都拥有独立的栈和程序计数器,而多个进程共享一个堆和方法区。二、当我们的程序在运行过程中需要执行两个或者多个任务,实现一些需要等待的任务,如用户输入,文件读写等,还有需要一些后台...原创 2019-08-14 20:36:08 · 172 阅读 · 1 评论 -
abstract关键字
abstract可以用来修饰类和方法1. abstract修饰的类是抽象类,此类不能够被实例化,必须要通过子类继承才能被实例化此抽象类中必须要有构造器,方便子类对象在实例化的时候调用2. abstract修饰的方法是抽象方法,此抽象方法只有方法的声明,没有方法体。如果一个方法是抽象方法,那么这个方法所在的类一定是抽象类。当子类实例化抽象类时,必须要重写该抽象类中的所有抽象方法才能实现实例化。...原创 2019-08-07 21:38:47 · 221 阅读 · 1 评论 -
final关键字
final就如它的英语意思一样最后的,不可改变的。final可以用来修饰类,方法和变量当final修饰类的时候,该类之下不能再有子类的出现,该类也就不能被继承。如,String,System,StringBuffer这些类,他们被final修饰,都不能在被其他子类继承final修饰方法,则此方法就不能再被重写。class Circle{ public final void accou...原创 2019-08-06 21:36:59 · 112 阅读 · 1 评论 -
IDEA—快捷键使用
关于IDEA的学习,这篇博客被分为两部分,这一部分介绍的是IDEA的快捷键使用和一些常用的实时代码模板。说实时代码模板可能会有写名词性,就是配置一些常用的代码字母的缩写,在输入简写时可以出现你预定义的代码样式,开发使用就更方便啦。关于Eclipse和IDEA,这两个不同的开发环境,如果都要记住快捷键,实在是太多了,可能会有混乱。因此,可以引入keymap jar包,保持Eclipse和IDEA的...原创 2019-06-01 21:03:56 · 201 阅读 · 8 评论 -
Maven的配置
** 安装 Maven 核心程序**【1】确认当前系统正确的配置了 JAVA_HOME 环境变量C:\Users\weiyh>echo %JAVA_HOME%C:\Java\jdk1.7.0_75【2】将 Maven 核心程序的压缩包解压到一个非中文无空格目录下D:\DevInstall\apache-maven-3.2.2【3】配置 MAVEN_HOME 或 M2_HOME...原创 2019-06-16 20:42:12 · 1206 阅读 · 18 评论 -
出现多余小数问题
在模板抽题部分,出现了实际分值和预设分值不同,在进行乘除运算后,出现了多位的小数。经过查询发现可以用js中的toFixed()方法,除去多余小数位。 // 预设分值=设定的小题数和小题分数的乘积 const preinstallScore = Number(questionTypeSetModelsCurrent.questionNumber) * Number(q...原创 2019-07-07 20:16:58 · 206 阅读 · 3 评论 -
使用Scanner类从键盘获取多种数据类型
如果要从键盘获取不同类型的变量,需要使用Scanner类具体的实现步骤:1.导包:import java.util.Scanner;2.实例化:Scanner scan=new Scanner(System.in);3.调用Scanner类的相关方法,来获取指定类型的变量//导入jar包import java.util.Scanner;class Scannertest{ pub...原创 2019-07-02 19:27:33 · 1647 阅读 · 5 评论 -
更新篇-Address localhost:1099 is already in use
上次写过一篇博客,关于端口被占用问题,调用了命令提示符,还用到了任务管理器。后来发现,直接使用命令就可以解决掉。还是以java.exe1099端口被占用为例1.打开cmd,打开dos命令行,输入netstat -ano|find “1099”2.tasklist |find “12080”3.taskkill/f/t/im java.exe一般出现这个问题,都是因为idea打开swa...原创 2019-07-04 20:55:11 · 1281 阅读 · 5 评论 -
IDEA错误:Error running Tomcat8: Address localhost:1099 is already in use
有时候在运行java后端项目的时候会遇到 Error running Tomcat8: Address localhost:1099 is already in use 的错误,导致无法运行。这明显是1099端口已经被占用,解决办法如下:第一步,win+R输入cmd,执行命令:netstat -ano,可见占用1099的进程PID是11172第二步,执行命令tasklist,该占用8080端...原创 2019-06-30 17:46:56 · 287 阅读 · 6 评论 -
错误: 编码GBK的不可映射字符
今天,在运行java程序时,javac时,突然显示编译不通过,开始以为是自己代码写的有问题。后来,百度发现是自己的.java文件保存出现问题。错误如下:这时,需要使用-encoding指令来为文件制定编码格式.命令如下:javac -encoding UTF-8 score.java //编译java score //运行本以为这样就可以运行成功了,结果运行后发现,显示非法字符:...原创 2019-07-05 19:30:30 · 4317 阅读 · 5 评论 -
for循环执行顺序
for循环执行的顺序依次是,初始值,条件,循环体,迭代for(初始值;条件;迭代){循环体} int num=1; for(System.out.println('a');num<=3;System.out.println('c'),num++){ System.out.println('b'); } 它输出的执行结果为:a b c b c b c...原创 2019-07-06 21:24:22 · 242 阅读 · 3 评论 -
数组的查找和算法排序
数组查找有三种方式,顺序查找,二分查找和分块查找。之前在自考中,我们已经知道算法的排序大致分四类,插入,交换,选择和归并排序。下面以查找中的顺序查找、二分查找和交换排序中的冒泡排序为例 //二分查找,查找数组有序 int[] arr2=new int[]{-98,-34,2,34,54,66,79,105,210,333}; int dest1=54; ...原创 2019-07-19 21:10:29 · 181 阅读 · 7 评论 -
JUnit单元测试
在进行项目编写的时候,经常要对所在的模块进行测试,但往往将调用的方法写在一个main方法中打印执行,因此往往徐需要进行标记才能体现出执行的是哪一个方法,这就带来了极大的不方便。因此,我们可以使用JUnit进行单元测试。1.选择当前工程即Java Project,选择Build Path–add Libraries–JUnit --next– Finish此时会在当前Java Proje...原创 2019-08-02 20:55:26 · 107 阅读 · 4 评论 -
static关键字
static是Java关键字之一,它是静态的,用来修饰属性,方法,代码块和内部类。static修饰的属性可以分为两类,静态属性和非静态属性。静态属性也就是静态变量,当我们创建了类的多个对象时,多个对象共享同一静态变量。当通过某一个对象修改静态变量时,会导致其他对象在调用此静态变量时,是修改之后的值。class Chinese { String name; int age; static...原创 2019-08-03 21:45:06 · 105 阅读 · 2 评论 -
Java中equals和“==”的区别
“==”:表示一个运算符,而equals是一个方法==:可以使用在基本数据类型和引用数据类型变量中1.如果比较的是基本数据类型,则是对两个变量保存的数据是否相等进行比较int i = 10;int j = 10;double a = 10.0;System.out.println(i == j); // trueSystem.out.println(i == a); // tru...原创 2019-08-01 21:40:55 · 117 阅读 · 7 评论 -
interface关键字
接口和类是并行的,类只能由一个类派生多个子类, 但不能从几个类中派生子类,而接口可以实现多继承,而类可以实现多个接口。1.接口定义全局常量和抽象方法// 定义全局常量public static final int Max_Speed=7900;int Min_Speend=1;// public static final可以省略// 定义抽象方法public abstract void...原创 2019-08-08 21:47:41 · 229 阅读 · 0 评论 -
IDEA创建springboot failed for 'http://start.spring.io'
在创建springboot 时,显示无法download,连接超时。如此图所示问题解决方案:1.打开setting设置,搜索http proxy,选择Auto-detect proxy settings,URL中输入:https://start.spring.io(这里是英文的方式,我的idea也会改过来的)3.选择check connection,再次输入url地址,测试一下,如果没有...原创 2019-06-01 09:11:07 · 475 阅读 · 6 评论