java
oYiMiYangGuang123
这个作者很懒,什么都没留下…
展开
-
系统重装后,java程序元java 开发环境搭建
系统重装呀、换电脑啊,这些操作都要做一遍,好麻烦,不知道有没有自动集成的。1.java 环境变量https://blog.csdn.net/weixin_40928253/article/details/83590136https://blog.csdn.net/yuan5025/article/details/1086892012.mavenhttps://blog.csdn.net/huo920/article/details/820824033.githttps://www原创 2023-03-03 17:56:57 · 170 阅读 · 0 评论 -
java编译器-未完
https://tech.meituan.com/2020/10/22/java-jit-practice-in-meituan.htmlJava即时编译器原理解析及实践原创 2021-05-11 10:31:33 · 112 阅读 · 0 评论 -
IP,string和long做相互转化
IP,string和long做相互转化public class TransIpToLongNumber { public static void main(String[] args) { TransIpToLongNumber toLongNumber = new TransIpToLongNumber(); String ip = "250.254.253.1"; long res = toLongNumber.ipToLong(ip); System.out.println原创 2021-02-05 15:00:20 · 242 阅读 · 0 评论 -
【IP篇】spring项目获取远程ip
目录1.spring项目获取请求端ip。2.上面的场景如何mock指定的客户端ip呢?3.服务器的地址和端口如何获取呢1.spring项目获取请求端ip。request.getRemoteAddr()当有多层代理时,取请求头里的第一个public String getRemoteIp(HttpServletRequest request) { String strXff = request.getHeader("X-Forwarded-For"); if (s原创 2020-05-15 14:39:26 · 708 阅读 · 0 评论 -
springboot获取启动项参数
1.背景通过启动传入参数,正常的http-port/属性都可以这么获取。下文demo实现获取第一个参数2.实现@SpringBootApplicationpublic class PgadtoolApplication implements CommandLineRunner { public static void main(String[] args) { Spri...原创 2020-04-24 15:36:14 · 1474 阅读 · 0 评论 -
【问】GET请求content_type错误引起的400
1. 问题描述 客户端收集点击上报的时候,会给第三方同时上报。最近发现,两者数量存在较大的差异。 首先确定了差异较大的客户端版本,客户端使用HTTP2.0发起GET请求,抓包发现和正常请求有以下两处不同。 1.自家使用的HTTP/1.1协议,第三方使用的HTTP/2.0协议。 2.由于历史原因请求头Content-Type为appl...原创 2019-10-25 16:36:19 · 809 阅读 · 0 评论 -
java 模拟HTTP2.0请求
关于HTTP/1.0 HTTP/1.1HTTP/2.0 https://www.cnblogs.com/heluan/p/8620312.html目前主流网站如某宝某东都已经支持,下面将用java程序模拟发起HTTP/2.0 GET请求。要求:Jdk 1.9+ 编译: jdk1.9 工具:idea第一步 创建项目第二步 source目录下创建module-info...原创 2019-10-25 16:24:26 · 3968 阅读 · 1 评论 -
guava java split和join
1. 引入依赖 <dependency> <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> <version>18.0</version> </dependency>...原创 2019-09-25 15:58:45 · 231 阅读 · 0 评论 -
springboot-实现动态定时任务
@Data@Component@EnableSchedulingpublic class DynamicTask implements SchedulingConfigurer { /** * 动态修改的cron参数. 通过外部接口修改该项就可以实现动态修改 */ private String cron = "0/15 * * * * ?" ; ...原创 2019-09-18 16:40:57 · 225 阅读 · 0 评论 -
JDK1.8并发之synchronized和Lock
什么是线程安全?线程安全是指保证多线程环境下共享的、可修改的状态的正确性。保证线程安全的两个办法:封装:将对象的内部状态隐藏、保护起来。不可变:final变量产生了某种程度地不可变(immutable)效果,可以用于保护只读数据。线程安全需要保证几个基本特性:原子性:相关操作不会中途被其他线程干扰,一般通过同步机制实现。可见性:一个线程修改了某个共享变量,其状态能够立即被其他线...转载 2019-01-09 15:36:46 · 779 阅读 · 0 评论 -
CaseInsensitiveComparator java
String 类看了忽略大小写的源码,觉得奇怪,源码如下 ,为什么大写不相等,还要判断小写呢,按说转成大写后不相等,转成小写就有可能相等吗 private static class CaseInsensitiveComparator implements Comparator<String>, java.io.Serializable { ...原创 2019-01-17 16:30:32 · 423 阅读 · 1 评论 -
【JVM虚拟机】内存占用排查
Java内存模型是描述Java程序中各变量(实例域、静态域和数组元素)之间的关系,以及在实际计算机系统中将变量存储到内存和从内存取出变量这样的低层细节。在Java虚拟机中,内存分为三个代:新生代(New)、老生代(Old)、永久代(Perm)。(1)新生代New:新建的对象都存放这里(2)老生代Old:存放从新生代New中迁移过来的生命周期较久的对象。新生代New和老生代Old共同组成了堆内存。(...转载 2018-05-03 17:05:53 · 3186 阅读 · 0 评论 -
【Redis系列】主从同步原理-SYNC
和MySQL主从复制的原因一样,Redis虽然读取写入的速度都特别快,但是也会产生读压力特别大的情况。为了分担读压力,Redis支持主从复制,Redis的主从结构可以采用一主多从或者级联结构,下图为级联结构。 Redis主从复制可以根据是否是全量分为全量同步和增量同步。1 全量同步 Redis全量复制一般发生在Slave初始化阶段,这时Slave需要将Master上的所有数据都复制一份。具...转载 2018-05-03 10:36:51 · 213 阅读 · 0 评论 -
spring maven web 报错NoSuchMethodError
问题: 写spring+maven项目,访问controller 500 日志出现了以下错误 java.lang.NoSuchMethodError: org.springframework.web.context.request.ServletRequestAttributes. (Ljavax/servlet/http/HttpServletR原创 2017-11-22 17:22:00 · 420 阅读 · 0 评论 -
统计二进位中1的个数
今天学习bitset,发现了有趣的统计1的个数的方法 public int cardinality() { int sum = 0; for (int i = 0; i < wordsInUse; i++) sum += Long.bitCount(words[i]); return sum; }仔细看了看Long转载 2017-06-15 10:27:18 · 358 阅读 · 0 评论 -
java 21点
完成一个变形版的纸牌21点游戏。该游戏来源于21点游戏,实现人机对战。游戏说明如下:(1)该游戏需要两副牌,没有Joker,共104张。每张“纸牌”应具有花色与数字两个属性。(2)游戏在机器与人类玩家之间进行。游戏一开始应先洗牌(将104张牌打乱)。(3)机器永远是庄家,所以永远先给机器发牌,机器的牌不可见,只能看到机器要了几张牌。机器停止要牌后,再给人类玩家发牌。(4)游戏胜利与原创 2013-10-25 22:10:09 · 1807 阅读 · 0 评论 -
java--时间
java时间表示方法方法1>>直接调用date引入相关包import java.util.Calendar; import java.util.Date; Calendar c= Calendar.getInstance(); Date d=c.getTime(); 就可以直接调用date类里的函数如 d.getD原创 2013-10-23 17:40:34 · 618 阅读 · 0 评论 -
java io
写在前面:本文章基本覆盖了java IO的全部内容,java新IO没有涉及,因为我想和这个分开,以突出那个的重要性,新IO哪一篇文章还没有开始写,估计很快就能和大家见面。照旧,文章依旧以例子为主,因为讲解内容的java书很多了,我觉的学以致用才是真。代码是写出来的,不是看出来的。最后欢迎大家提出意见和建议。【案例1】创建一个新文件1234567891011import java.io.*;clas转载 2014-09-01 17:05:30 · 671 阅读 · 0 评论 -
java socket 一服务器对多客户端
import java.io.*;import java.net.*;import java.util.logging.Level;import java.util.logging.Logger;class Server extends Thread { private Socket s; public Server(Socket sp) { this原创 2014-09-01 21:55:51 · 728 阅读 · 0 评论 -
对象持久化
第1章 对象持久化什么是持久化?简单地说,持久化就是把数据同步保存到数据库或某些存储设备中。在软件的分层体系结构中,持久化层是与数据库打交道的逻辑层。在数据库中对数据的增加、删除、查找和修改操作由持久化层来处理。最常见的操作是在ASP或JSP的页面代码中混杂了很多连接数据库、操作数据库的语句,这实际上是把持久层和展现层耦合到了一起,使得代码的编写和维护都很困难,程序结构非常不清晰。对于大转载 2014-10-27 19:17:20 · 998 阅读 · 0 评论 -
java实现万年历<51cto学院学习笔记>
功能:输入年份和月份可以输出日历原创 2014-10-10 16:24:50 · 799 阅读 · 0 评论 -
Map的四种遍历方法
public static void main(String[] args) { Map map = new HashMap(); map.put("1", "value1"); map.put("2", "value2"); map.put("3", "value3"); //第一种:普遍使用,二次取值 System.out.println("转载 2014-10-27 19:30:23 · 547 阅读 · 0 评论 -
java字符串subString的实现
1 功能: substring (beginIndex,endIndex),取字符串beginIndex和endIndex之间的字符,缺少第二个参数时,取beginIndex到字符串末尾的字符。2 实现方法在String 类里 public String substring(int beginIndex, int endIndex) { if (beginIndex < 0原创 2016-05-04 18:48:50 · 925 阅读 · 0 评论 -
java关键字Volatile Transient
java关键字volatileVolatile修饰的成员变量在每次被线程访问时,都强迫从主内存中重读该成员变量的值。而且,当成员变量发生变化时,强迫线程将变化值回写到主内存。这样在任何时刻,两个不同的线程总是看到某个成员变量的同一个值。 Java语言规范中指出:为了获得最佳速度,允许线程保存共享成员变量的私有拷贝,而且只当线程进入或者离开同步代码块时才与共享成员变量的原始值转载 2016-04-21 11:31:59 · 406 阅读 · 0 评论 -
HashMap数据结构
1. HashMap的数据结构数据结构中有数组和链表来实现对数据的存储,但这两者基本上是两个极端。 数组数组存储区间是连续的,占用内存严重,故空间复杂的很大。但数组的二分查找时间复杂度小,为O(1);数组的特点是:寻址容易,插入和删除困难;链表链表存储区间离散,占用内存比较宽松,故空间复杂度很小,但时间复杂度很大,达O(N)。链表的特点是:寻址困难转载 2016-07-28 20:04:00 · 289 阅读 · 0 评论 -
ip和long的转换
public static long ipStrToLong(String ipAddress) { long[] ip = new long[4]; int i = 0; for (String ipStr : ipAddress.split("\\.")) { ip[i++] = Long.parseLong(ipStr)原创 2016-08-15 16:06:07 · 509 阅读 · 0 评论 -
关于jvm几个关键内存配置参数
请看下面题目: 对于jvm内存配置参数: -Xmx10240m -Xms10240m -Xmn5120m -XXSurvivorRatio=3 其最小内存值和Survior区总大小分别是: a. 5120m,1024m b.5120m,2048m c.10240m,1024m d.10240m,2048m答案是:d.首先必须知道几个参数的含义:转载 2017-03-21 18:32:58 · 475 阅读 · 0 评论 -
堆初始化 堆排序
转自http://www.cnblogs.com/mengdd/archive/2012/11/30/2796845.html 堆排序是一种选择排序,其时间复杂度为O(nlogn)。堆的定义 n个元素的序列{k1,k2,…,kn}当且仅当满足下列关系之一时,称之为堆。 情形1:ki 2i 且ki 2i+1 (最小化堆或小顶堆) 情形2:ki >=转载 2017-06-09 17:38:12 · 7402 阅读 · 2 评论 -
tomcat bio nio apr 模式 ---待自己整理
原文链接:http://blog.csdn.net/xyang81/article/details/51502766Tomcat支持三种接收请求的处理方式:BIO、NIO、APR 1>、BIO模式:阻塞式I/O操作,表示Tomcat使用的是传统Java I/O操作(即Java.io包及其子包)。Tomcat7以下版本默认情况下是以bio模式运行的,由于每个请求都要创建一个线程来处理,线转载 2017-06-13 11:35:35 · 1100 阅读 · 0 评论 -
java菜鸟起步-1 35选7
你中过奖么?利用java实现一个35选7的彩票中奖号码产生程序。随机产生7个1至35之间(包括1和35)的不重复整数,并输出。 * 随机数生成方法见JDK API的java.lang.Math类的random函数。(练习循环与break、continue、数组)public class random35_7 { public static void mai原创 2013-10-10 18:41:11 · 2499 阅读 · 0 评论