Java
踏夜行
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Java变量及equals与==
浅谈变量局部变量位置:定义在方法内部的变量。赋值:定义是必须赋值。修饰符:不能用修饰符修饰。全局变量(成员变量)位置:定义在类内部,方法外部的变量。赋值:定义是可不赋值。不赋值情况下,将使用默认值。其中,数字默认为0。对象默认为null。布尔值默认为false。修饰符:可用修饰符修饰。类变量(静态变量):static修饰;随着类的加载,即创建并分配空间。直接使用类就可使用这个变量。 存储在静态域中实例变量:未被static修饰;属于某个对象属性,必须创建实例对象,才会原创 2021-12-29 23:40:15 · 387 阅读 · 1 评论 -
网络编程之端口
端口范围:0 - 65535单个协议下,端口不能冲突。公有端口 0-1023http默认端口80http默认端口443ftp默认端口21telent默认端口23程序注册端口 1024-49151,分配给用户或者程序tomcat默认端口8080mysql默认端口3306Oracle默认端口1521动态端口 49152-65535netstat -ano 查看所有端口...原创 2021-12-29 08:24:52 · 704 阅读 · 0 评论 -
网络编程之通信协议
TCP/IP协议族,是一个协议。传输层TCP:用户传输协议UDP:用户数据报协议TCP、UDP对比TCP:类似连接打电话需要连接;稳定三次握手、四次挥手客户端、服务端传输完成,释放连接,效率低UDP:类似不连接发短信不连接,不稳定客户端、服务端没有明确界限不管有没有准备好,都可以给你DDOS:饱和攻击 洪水攻击...原创 2021-12-28 21:41:21 · 1011 阅读 · 0 评论 -
线程之线程池
Executors:一个工具类, 用于创建并返回不同类型的线程池。ExecutorService:真正的线程池接口。execute(Runnable ra):执行任务/命令,没有返回值。 一般用来执行Runnable。submit(Callable task):执行任务,有返回值。一般用来执行Callable。shutDown():关闭连接池。...原创 2021-12-26 16:06:50 · 231 阅读 · 0 评论 -
wait和notify
wait方法可以释放锁,并使当前线程进入等待队列。和sleep方法不同,sleep方法不会释放锁。notify方法会唤醒正在等待这个对象的监视器的当个线程。任意选择其中一个,进入到就绪状态。notifyAll方法会唤醒,正在等待这个对象的监视器的所有线程,进入到就绪状态。...原创 2021-12-26 16:01:56 · 229 阅读 · 0 评论 -
synchronized和reentrantlock
synchronized是隐式锁。有方法锁,块锁。reentranlock是显示锁。需要新建ReentrantLock对象,并调用lock方法,锁住方法。使用unlock解锁方法。属于JUC包!Java.util.concurrent只有块锁。优先使用顺序:Lock > 同步块(已进入方法体,分配了相应资源) > 同步方法(在方法体之外)...原创 2021-12-26 11:19:22 · 251 阅读 · 0 评论 -
线程的同步
线程的同步使用关键synchronized。synchronized可以修饰方法,也可以修饰块。1. synchronized方法synchronized方法控制”对象“的访问。每个对象都对应一把锁。每个synchronized方法,都必须获得调用该方法的对象的锁才能执行,否则线程将会阻塞。2. synchronized块synchronized(obj){}其中,obj称之为同步监视器(即变化的对象)。obj可以是任何对象,但是推荐使用共享对象作为同步监视器。同步方法中,无需指定同步监视原创 2021-12-26 10:54:52 · 159 阅读 · 0 评论 -
线程之守护线程
线程分为用户线程和守护线程。用户线程,虚拟机必须确保用户线程执行完毕。例如main方法。守护线程,虚拟机不必确保守护线程执行完毕。例如垃圾回收、记录操作日志、监控内存等。注意:设置线程为守护线程的方法,setDaemon(boolean flag)线程默认都是用户线程(daemon=false)...原创 2021-12-25 22:11:29 · 679 阅读 · 0 评论 -
线程优先级
线程优先级,priority。优先级有数字表示,从1-10。1最低,10最高。使用getPriority和setPriority可设置和获取指定线程优先级。Java提供了一个线程调度器,用来调度进入到就绪状态中的线程。调度器根据线程的优先级,来决定优先调度哪个线程执行。注意:先设置优先级,再启动!!!!!!!!!...原创 2021-12-25 21:28:25 · 143 阅读 · 0 评论 -
线程的状态
新建(NEW)。创建线程对象。就绪状态(RUNNABLE)。使用对象,调用start()方法,使线程进入就绪状态。运行状态。获取到cpu时间片,使线程真正执行代码。阻塞状态(BLOCKED)。死亡状态(TERMINATED)。线程执行完或异常退出run方法。线程只能执行一次。死亡后的线程不能在运行。WAITING状态、TIMED_WAITING状态。...原创 2021-12-25 21:09:04 · 259 阅读 · 0 评论 -
线程的礼让yield
线程的礼让,使用线程的yield方法。使运行的线程暂停,让线程直接进入到就绪状态。(中间不会进入阻塞状态)礼让不一定成功。是否礼让成功,由cpu调度决定。原创 2021-12-23 20:59:58 · 437 阅读 · 0 评论 -
线程休眠方式
线程休眠,使用sleep方法。每个对象都有一把锁,sleep不会释放锁可用于放大问题的发生性。可在测试时使用可以模拟网络延时、倒计时等sleep方法,参数为毫秒。sleep时间到达后,线程进入到就绪状态。...原创 2021-12-23 20:49:27 · 1320 阅读 · 0 评论 -
线程停止方式
建议使用标志位,中止线程运行。线程自带中止方法,存在未知bug,不建议使用。定义类并实现Runnable接口。重写run方法。定义标志位。定义中止线程方法。内部逻辑为修改标志位状态。启动线程。并同时设置条件,在满足条件时,调用中止线程方法。...原创 2021-12-23 20:14:42 · 235 阅读 · 0 评论 -
ideaj动态创建对象快捷键设置
选择file -> setting,打开Editor。打开Live Templates。点击右侧“+”,选择“Template Group”,新建模板组。选中新建的模板组,点击右侧“+”,新建模板。(已MyGroup为例)设定模板快捷键。模板功能描述。在Template Text中输入一下内容 $Clazz$ $obj$ = new $Clazz$();$END$点击8位置,未设置过模板此处会显示为Defined。已设置过得显示Change。点击后,勾选Java点击ap...原创 2021-12-22 13:34:24 · 894 阅读 · 0 评论 -
静态代理原理
定义接口真实对象和代理对象,都实现同一个接口,并重写接口方法。代理对象中,传入真实对象,并调用真实对象方法。代理对象方法中可执行自定义业务逻辑。主线程中,使用代理对象调用接口方法。将真实对象当做参数传入代理对象。...原创 2021-12-22 12:43:49 · 314 阅读 · 0 评论 -
多线程实现
继承Thread类。启动时,使用子对象.start() 启动线程。缺陷:由于java为单继承,不推荐此方法。实现Runnable接口。启动时,使用Thread对象+子对象+start()启动线程。new Thread(子对象).start()实现Callable接口a、创建线程池,将线程放入线程池ExcutorService ser = Excutors.newFixThreadPool(线程数量);b、执行线程ser.sumbit(线程对象);c、可获取执行结果d、关闭..原创 2021-12-21 20:57:30 · 369 阅读 · 0 评论 -
Java 位运算
与运算:两个操作数中位都为1,则为1。否者结果为0 。或运算:两个操作数中,有一个为1,结果为1。否则结果为0。非运算:位为1,则结果为0。位为0,则结果为1。原创 2021-12-18 09:35:09 · 568 阅读 · 0 评论 -
Java程序运行机制(编译和执行)
javac java文件。(包含文件后缀)编译Java文件,编译成功后,会生成已.class后缀的字节码文件。java 文件名(类名),执行(解释)。Java是先编译后解释(执行)。编译型和解释型。原创 2021-12-16 22:53:31 · 737 阅读 · 0 评论 -
安装java环境
下载jdk。已jdk8为例。创建文件夹,用来当作jdk安装目录。运行jdk,安装至指定文件夹。配置环境变量。JAVA_HOME、PATHJAVA_HOME:jdk安装目录。PATH:追加%JAVA_HOME%\bin,追加%JAVA_HOME%\jre\bin打开DOS,测试Java安装是否成功。运行java -version,查看提示信息是否正确。...原创 2021-12-16 21:32:45 · 388 阅读 · 0 评论 -
ideaj使用maven管理项目,编译后target下无.xml文件
运行项目,报以下错误org.apache.ibatis.binding.BindingException: Invalid bound statement (not found):找到target目录,发现target中没有xml文件。解决方案方式1、查看pom文件配置是否正确 <!--解决Intellij构建项目时,target/classes目录下不存在mapper.xml文件--><resources> //可以配置多个资源文件 <resou原创 2021-05-17 22:08:18 · 1255 阅读 · 0 评论 -
sheet.getLastRowNum() 不准确的问题
从Excel中取数据行数时,通过sheet.getLastRowNum()获取的数值,会出现错误。原因在于Excel中只要操作过单元格就会认为样式发生改变。即使单元格为空,也会被读取行数据。处理方式:通过row.getFirstCellNum()和row.getLastCellNum(),获取所有行,在进行cell校验中,判断单元格是否为null或者空格。for (int i = row.getFirstCellNum(); i < row.getLastCellNum(); i++) {原创 2021-05-17 17:16:10 · 14169 阅读 · 1 评论 -
Ideaj控制台乱码
控制台乱码处理方式1:检查 pom 配置方式2:修改 idea.exe.vmoptions 或 idea64.exe.vmoptions方式3:修改文件编码格式方式4:修改 VM options方式5:修改 Tomcat 配置文件 logging.properties方式6:修改 Custom VM Options好记性不如烂笔头。入坑多次,实属惭愧。特此撰写,以此放过自己。如高手路过,不足之处,多指教。以下方式,仍未能解决您的问题。待问题解决后,烦请赐教。项目:web+tomcat方式1:检查 po原创 2021-05-14 10:41:30 · 273 阅读 · 0 评论 -
IdealJ 2019.3 修改idea64.exe.vmoptions后,无法重启。
安装ideal后,修改vmoptions后,无法重启。ideal完成安装后,选择edit custom VM options修改vmoptions,如下图。在下图中,最后一行后加入以下内容-javaagent:D:\Java\ideal\jetbrains-agent.jar(注意:路径需修改为个人相应文件所在目录)添加完成后,保存。重启idealJ。重点来了:vmoptions文...原创 2020-02-03 10:34:53 · 6991 阅读 · 7 评论
分享