java
文章平均质量分 58
另一个绝影
一步一步向上爬。
展开
-
dubbo上手实践
dubbo上手实践dubbo是什么?学习dubbo要解决什么问题?1)Dubbo 是阿里巴巴公司开源的一个高性能优秀的开源分布式服务框架,使得应用可通过高性能的 RPC 实现服务的输出和输入功能,可以和 Spring 框架无缝集成。2)对于业务繁杂的业务系统,业务复杂,没有很好的进行业务拆分,版本不断迭代导致代码结构混乱,版本测试周期长,开发困难,上线困难,如果上线测试遇到严重bug,只能进行版本回退,性能遇到瓶颈时顶多搭建负载均衡集群分流,当并发访问量到一定数量后,基本很难再有性能提升,做了负载均衡原创 2020-09-14 12:12:09 · 251 阅读 · 0 评论 -
多线程相互持有彼此需要的资源导致死锁示例
package com.linkcm.test;public class SLock { static Object resource1=new Object();//资源1 static Object resource2=new Object();//资源2 public static void main(String args[]) { new Thread() { @Override public void run() { synchroniz.原创 2020-08-19 01:01:54 · 273 阅读 · 0 评论 -
java中对象的传递是值传递还是引用传递?
以下个人观点仅代表目前个人理解,也许有理解不到的地方,仅记录作为日后参考。看到这样一个例子来说明是值传递而不是引用传递个人观点:简述一下一个概念Student s1=new Student();对于这个语句来说s1是对象的一个引用,具体创建对象的过程是new Student()这个来完成的,对象是一个看不见摸不着的堆上的一块内存区域,这块区域存放对象方法和属性。1.所以上述图中可以理解为s1和s2是指向Student的两个对象的两个引用,x和y是对引用s1和s2两个引用的一.原创 2020-08-15 13:03:13 · 1279 阅读 · 0 评论 -
ftp连接池的实现
类似数据库连接,ftp连接也是一个比较浪费时间的连接,为了高效快速获取连接,对连接数量和资源进行有效管理,引入了连接池比较合理。实现一个ftp连接池,工程已经压缩成jar,需要使用直接下载即可,相关ftp的jar包已经封装在jar中,提供了常用ftp操作方法在FTPUtils,和文件留痕处理的FileUtils。jar下载地址:引入上述的jar包后,手动配置下面几步就可以使用了。使用步骤1.application.properties配置ftp连接信息ftp.host=xxxxxx原创 2020-06-14 12:57:12 · 1128 阅读 · 0 评论 -
使用jedis分布式锁的场景分析和缺陷和遗留未解决问题
一:使用场景,我现在有一个发送程序,负责分发不同的渠道,每隔30s会执行一次扫描表的,把未发送的记录取出来然后开n个线程发送出去,领导担心万一这台机器down机发送不出去,数据库待发送记录太多发送太慢,虽然多核服务器可以并发发送,每个时刻也能真正有m个任务在同时执行(多核cpu)但是在大量待发送记录的情况下 发送效率还是不高,所以用redis做了分布式部署,在多台机器上部署了发送程序,这样执行效率...原创 2020-02-01 21:09:46 · 272 阅读 · 0 评论 -
Myeclipse java程序中运行图片无法加载并且乱码
Windows---prefrence--workspace--text file encoding亲测有效翻译 2017-03-08 18:15:55 · 560 阅读 · 0 评论 -
java笔记之JVM
1.JDK:JAVA程序设计语言,java虚拟机,javaAPI类库2.JRE:JAVA API 类库中的java SE API子集和java虚拟主机这两部分统称3.java虚拟主机所管理的内存包括以下几个运行时的数据区域 方法区 虚拟机栈 本地方法栈 堆 程序计数器由于java虚拟机是通过线程轮流切换并分配执行时间的方式来实现的,因此在任何时刻一个处理器原创 2017-03-16 19:22:00 · 462 阅读 · 0 评论 -
JAVA笔记之继承
单例模式: 委派: 1. java不用多继承:可能由于父类的一些不该有的方法继承下来使用(可以理解为继承需要的方法中又包含有不该有的方法,如人继承car中的run()方法,但run()方法中包含有JIAyou()加油不该继承) 2.子类当中用上转型对象访问和父类同名的方法和属性的区别以及子类可以定义同名变量方法来隐藏父类的变量和方法package Serv原创 2017-03-18 11:00:28 · 169 阅读 · 0 评论 -
java笔记JVM1
1.直接内存:并不是虚拟机运行时数据区的一部分,也不是虚拟机规范中定义的内存区域,它也会引起OutOfMemoryError异常的出现。基于通道和缓冲区的I/O方式,他可以使用Native函数直接分配对外内存,然后通过一个存储在java堆中的DirectByteBuffer对象对这块内存区域的引用来进行操作。它不会受到java堆大小的限制但是会受制于本机总内存大小和处理器寻址空间的限制。原创 2017-03-16 21:43:55 · 198 阅读 · 0 评论 -
jvm内存溢出和内存泄漏的区别
内存溢出 out of memory,是指程序在申请内存时,没有足够的内存空间供其使用,出现out of memory;比如申请了一个integer,但给它存了long才能存下的数,那就是内存溢出。内存泄露 memory leak,是指程序在申请内存后,无法释放已申请的内存空间,一次内存泄露危害可以忽略,但内存泄露堆积后果很严重,无论多少内存,迟早会被占光。memory leak会最终会导转载 2017-03-17 12:43:24 · 429 阅读 · 0 评论 -
再谈java两种变量(基本类型和引用类型)(综合各路大神)
基本类型:基本类型自然不用说了,它的值就是一个数字,一个字符或一个布尔值。 int a; a=250; //声明变量a的同时,系统给a分配了数据空间。 引用类型:是一个对象类型,值是什么呢?它的值是指向内存空间的引用,就是地址,所指向的内存中保存着变量所表示的一个值或一组值。 引用类型就不是了,只给变量分配了引用空间,数据空间没有分配,因为原创 2017-03-08 18:12:21 · 427 阅读 · 0 评论 -
JAVA多线程中访问变量问题
类变量(类里面static修饰的变量)保存在“方法区”实例变量(类里面的普通变量)保存在“堆”局部变量(方法里声明的变量)“虚拟机栈”“方法区”和“堆”都属于线程共享数据区,“虚拟机栈”属于线程私有数据区。因此,局部变量是不能多个线程共享的,而类变量和实例变量是可以多个线程共享的。事实上,在java中,多线程间进行通信的唯一途径就是通过类变量和实例变量。也就是说转载 2017-03-27 18:51:27 · 7087 阅读 · 0 评论 -
Jvm同步基本思想
可以说jvm中的三种锁都是以上述思想为基础的,只是实现的“重量级”不同,jvm中有以下三种锁(由上到下越来越“重量级”):偏向锁轻量级锁重量级锁 其中重量级锁是最初的锁机制,偏向锁和轻量级锁是在jdk1.6加入的,可以选择打开或关闭。如果把偏向锁和轻量级锁都打开,那么在java代码中使用synchronized关键字的时候,jvm底层会尝试转载 2017-03-27 21:44:21 · 305 阅读 · 0 评论 -
解决求很大数阶层时数据溢出的两种方法
1.代码package test; import java.util.*;import java.io.IOException; public class Test5{ public void Transport(long n){ int s=1; for(int i=1;i s*=i; System.out.println(n+"!的原创 2017-03-21 10:19:42 · 3087 阅读 · 0 评论 -
java的StackOverflowError和java.lang.NullPointerException异常的原因
StackOverflowError:是由于当前线程的栈满了,也就是函数调用层级过多导致(来自https://www.douban.com/note/209726041/)你使用了空的指针。在java中虽然号称抛弃了C++中不安全的指针,但其实他所有的东西你都可以理解为指针。这种情况一般发生在你使用了一个对象实例(其实是一个类指针)来调用它的成员函数,但这个实例却为null原创 2017-03-21 13:27:07 · 726 阅读 · 0 评论 -
java正则表达式笔记
package test;import java.util.regex.Matcher;import java.util.regex.Pattern;public class test2 {//正则表达式判断字符串是否全是数字public void A1(){String regex="[0-9]*";String num="543252154"原创 2017-03-21 14:01:52 · 252 阅读 · 0 评论 -
java中多线程一个线程负责客户端读数据到队列另外一个线程负责从队列输出数据
直接上码分析 package test;import java.applet.Applet;import java.awt.Button;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.util.Queue;import java.util.Scanne原创 2017-03-28 13:31:02 · 5405 阅读 · 0 评论 -
JAVA字符串转化为数字(可以适合大部分)
package test;import java.io.IOException;import java.util.Scanner;public class StringTranportNum { public static int StrToInt(String S){int number=0;int i=0;String num="";ch原创 2017-03-21 22:59:44 · 2000 阅读 · 0 评论 -
一些简单容易弄错的java继承小细节
一final关键字在java中声明类、属性和方法时,可使用关键字final来修饰·final标记的类不能被继承·final标记的方法不能被子类重写·final标记的变量(成员或局部变量)即成为常量,只能赋值一次二:构造函数并不具有多态性,它们实际上是static方法,只不过该static声明是隐式的。因此,构造函数不能够被override。翻译 2017-03-29 09:52:15 · 264 阅读 · 0 评论 -
关于的数据类型的取值范围和所占字节数
bool型为布尔型,占1个字节,取值0或1。BOOL型为int型,一般认为占4个字节,取值TRUE/FALSE/ERROR。sbyte型为有符号8位整数,占1个字节,取值范围在128~127之间。bytet型为无符号16位整数,占2个字节,取值范围在0~255之间。short型为有符号16位整数,占2个字节,取值范围在-32,768~32,7翻译 2017-03-22 13:39:50 · 4567 阅读 · 0 评论 -
java和c中的空格符的差别以及C语言字符串变为整形数字代码
java中nextLine()输入字符串时空格是算入进去的如下图C语言当中遇到空格就默认输入字符串结束#include #include int main(){ char string[22];//转化的字符串 int k;//操作系统的位数 printf("请输入你需要转化的字符串:"); scanf("%s",strin原创 2017-03-22 14:13:31 · 504 阅读 · 0 评论 -
java贪吃蛇源码(注意图片路径)
package snake;package snake;public enum Dirr {L,U,D,R}import java.awt.Color;import java.awt.Font;import java.awt.Frame;import java.awt.Graphics;import java.awt.Image;package snake;import java.原创 2017-03-22 15:01:42 · 1657 阅读 · 0 评论 -
面试必备一些小知识
什么是可变参数?可变参数允许调用参数数量不同的方法。请看下面例子中的求和方法。此方法可以调用1个int参数,或2个int参数,或多个int参数。package test;public class Ceshi { /** * @param args */ public Ceshi(){ } public int sum(int... numbers) {翻译 2017-03-29 15:43:12 · 175 阅读 · 0 评论 -
对于字符型字节型使用toString
对于字符型字节型使用toString原创 2017-04-11 11:12:45 · 594 阅读 · 0 评论 -
java 输入输出流
1.输入流 :程序从输入流的源中读取数据,输入流的唯一目的是提供通往数据的通道,程序可以通过这个通道读取数据,read方法给程序提供一个从输入流中读取数据的基本方法。 int read(); read方法从输入流中顺序读取单个字节的数据。该方法返回字节值(0~255之间的一个整数),读取位置到达文件末尾,则返回-1。 int read(byte b[原创 2017-04-10 21:48:09 · 396 阅读 · 0 评论 -
java多线程对于多核cpu来说输出无先后顺序
在java中要想实现多线程,有两种手段,一种是继续Thread类,另外一种是实现Runable接口。下面代码是第一种代码中的注释清楚说明了对于多线程来说对run方法的使用一般是无先后顺序的,但对于单核的cpu来说由于它们都会放在同一个队列中,这时候会有先后顺序,但是对于多核cpu来说,会出现多个队列,如果线程不在同一个队列当中那就无确定的先后顺序。下面的的输出就可以验证。packa原创 2017-03-27 00:31:52 · 1826 阅读 · 0 评论 -
java再谈for
一:使用的形式1.遍历数组的传统方式/* 建立一个数组 */ int[] integers = {1, 2, 3, 4}; /* 开始遍历 */ for (int j = 0; j < integers.length; j++) { int i = integers[j]; System.out.println(i); }2. 普通循环转载 2017-04-28 14:38:26 · 306 阅读 · 0 评论 -
java接口
接口的基本语法使用 interface定义;接口当中的方法都是抽象方法;接口当中的方法都是public权限(接口中的方法,写不写public修饰符,都是public权限,别的地方不行哦); 可以把接口理解成一个更加纯粹的抽象类,因此它也不能生成对象。这要怎么办呢?回想抽象类的处理方法,可以用一个类来继承(接口中叫实现)它,从而在子类中生成对象。pack转载 2017-04-05 14:08:33 · 176 阅读 · 0 评论 -
java集合的学习
java.util包中包含了一系列重要的集合类,而对于集合类,主要需要掌握的就是它的内部结构,以及遍历集合的迭代模式。接口:CollectionCollection是最基本的集合接口,一个Collection代表一组Object,即Collection的元素(Elements)。一些Collection允许相同的元素而另一些不行。一些能排序而另一些不行。Java SDK不提供直接继转载 2017-04-05 17:25:54 · 316 阅读 · 0 评论 -
对于用到repaint带来问题的解决方案
先简单描述一下我遇到的问题; 做一个汉字部件系统要求把整张表的内容查找显示出来,而我的内容就用g.drawstring()来绘制的,需调用repaint()方法来清除上一次显示的内容,我当时想的是用一个for循环来搞定就行了,每次g.drawstring()之前先repaint(),但是想想总是美好的,发现很坑要不就是内容闪现一下不见了要不就是循环显示内容全部重叠在一起,想要改之前原创 2017-04-18 23:53:43 · 1358 阅读 · 0 评论 -
关于Graphics出现空指针异常的原因及repaint闪一下内容不见的分析
官方提供的原文是 public Graphics getGraphics()Creates a graphics context for this component. This method will return null if this component is currently not displayable.Overrides:getGraph原创 2017-03-30 22:59:28 · 2897 阅读 · 4 评论 -
从mysql取数据时出现Before start of result set
如下面这段代码即使十分确定能搜出记录,也不可以在没有rs.next()之前直接对rs进行取值。这涉及到rs对象的存储方法。里面说白了就是指针。没next,指针根本没指向对应记录while(rs.next()){ if(password1!=null) password1=rs.getString("password"); } if(pa原创 2017-04-30 16:50:57 · 7590 阅读 · 0 评论 -
Socket编程,自己电脑做服务端和客户端
这个问题虽然简单但是感触真的很深刻。。。。。人心惨淡啊,哈哈哈哈,度娘上找不到答案,各种途径大神都潜水,这就是渣渣的遭遇,努力吧骚年。 相信直接编写简单的Socket客户端和Socketserver服务端很多人都会写,并且发现代码没什么错误,只是自己不知道运行出错原因在哪里。这里我就总的把我遇到的问题说一下,大神请过,像我一样的渣渣可以借鉴。 我是打算编写一个简单的程序实现客户端原创 2017-04-13 00:13:49 · 11680 阅读 · 6 评论 -
java程序员38道常规面试题
1. 谈一谈”==“与”equals()"的区别。《Think in Java》中说:“关系操作符生成的是一个boolean结果,它们计算的是操作数的值之间的关系”。"=="判断的是两个对象的内存地址是否一样,适用于原始数据类型和枚举类型(它们的变量存储的是值本身,而引用类型变量存储的是引用);equals是Object类的方法,Object对它的实现是比较内存地址,我们可以重写这转载 2017-05-22 22:48:14 · 441 阅读 · 0 评论 -
Java web 乱码问题过滤器的正确设置
package Main;import java.io.IOException;import java.io.PrintWriter;import javax.servlet.Filter;import javax.servlet.FilterChain;import javax.servlet.FilterConfig;import javax.servlet.ServletExce原创 2017-05-12 13:05:24 · 316 阅读 · 0 评论 -
AJAX实现异步提交登陆达到页面友好的效果
<%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%> "> My JSP 'Login.jsp' starti原创 2017-05-12 17:48:57 · 271 阅读 · 0 评论 -
MySQL事务和properties数据库连接
package com.jdbc;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.SQLException;import java.sql.Savepoint;import java.sql.Statement;public class Account { /*原创 2017-05-13 13:55:19 · 280 阅读 · 0 评论 -
page,request,session,application几个的优先级
EL和jstl1.从session中取数据User user=(User)session.getAttribute("user")String sex=user.getSex();可以替换为${sessionScope:user.sex}2.下面两种情况的.和[]是不能互换的 (1)要原创 2017-05-05 09:41:59 · 1225 阅读 · 0 评论 -
java web 开发的临时聊天窗口 并不是很完善 可以实现简单聊天
测试 账号 liyue 密码 123456可以提供注册账号http://www.llideyaopjw.xyz:8080/Demo3/Login.jsp工程包下载地址 (包内含有源码及所需要的jar包,服务器差请不要乱注册一堆账号) http://download.csdn.net/my原创 2017-05-10 19:27:58 · 770 阅读 · 0 评论 -
比较时间
package Databaselink;import java.text.DateFormat;import java.text.ParseException;import java.text.SimpleDateFormat;public class Datecompare { /*date1>date2 返回1 *date1<date2 返回-1 *d原创 2017-05-07 11:16:31 · 288 阅读 · 0 评论