![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java自学之路
文章平均质量分 68
JAVA旭阳
这个作者很懒,什么都没留下…
展开
-
5个接口性能提升的通用技巧
作为后端开发人员,我们总是在编写各种API,无论是为前端web提供数据支持的,还是提供内部使用的RPC API。这些API在服务初期可能表现不错,但随着用户数量的增长,一开始响应很快的API越来越慢,直到用户抱怨:“你的系统太糟糕了。” 我只是浏览网页。为什么这么慢?”。这时候你就需要考虑如何优化你的API性能了。要想提高你的API的性能,我们首先要知道哪些问题会导致接口响应慢。API设计需要考虑很多方面。开发语言层面只占一小部分。哪个部分设计不好就会成为性能瓶颈。数据库慢查询复杂的业务逻辑。原创 2023-01-02 20:01:57 · 233 阅读 · 0 评论 -
90%的Java开发人员都会犯的5个错误
作为一名java开发程序员,不知道大家有没有遇到过一些匪夷所思的bug。这些错误通常需要您几个小时才能解决。当你找到它们的时候,你可能会默默地骂自己是个傻瓜。是的,这些可笑的bug基本上都是你忽略了一些基础知识造成的。其实都是很低级的错误。今天,我总结一些常见的编码错误,然后给出解决方案。希望大家在日常编码中能够避免这样的问题。欢迎关注微信公众号「JAVA旭阳」交流和学习本文总结了在开发过程中很容易犯的5个错误,希望大家养成良好的编码习惯。欢迎关注微信公众号「JAVA旭阳」交流和学习程序员成神之路。原创 2022-12-28 21:13:49 · 326 阅读 · 0 评论 -
丧心病狂,竟有Thread.sleep(0)这种神仙写法?
最近在网上看到了一段代码,让我感到很迷茫。他在代码中使用了,让线程休眠时间为0秒,具体代码如下。int i = 0;try {}}}sleep了0秒,不就是不睡觉吗?我的第一反应是这段代码没什么用,但是看到他的注释又引起了我的兴趣。经过一番研究,看似无用的一段代码,其实大有文章。欢迎关注微信公众号「JAVA旭阳」交流和学习不是什么无用的代码。sleep方法可用于在 java 代码中放置一个安全点。可以提前在长循环中触发GC,避免GC线程长时间等待,从而避免达到拉长GC时间的目的。原创 2022-12-27 22:36:15 · 187 阅读 · 0 评论 -
正确理解和使用JAVA中的字符串常量池
研究表明,Java堆中对象占据最大比重的就是字符串对象,所以弄清楚字符串知识很重要,本文主要重点聊聊字符串常量池。Java中的字符串常量池是Java堆中的一块特殊存储区域,用于存储字符串。它的实现是为了提高字符串操作的性能并节省内存。它也被称为或。那让我来看看究竟是怎么一回事吧。欢迎关注微信公众号「JAVA旭阳」交流和学习其实在 Java 7 之前,JVM将放置在PermGen空间中,它具有固定大小——它不能在运行时扩展,也不符合垃圾回收的条件。在PermGen。原创 2022-12-26 21:55:25 · 243 阅读 · 0 评论 -
JAVA中生成随机数Random VS ThreadLocalRandom性能比较
大家项目中如果有生成随机数的需求,我想大多都会选择使用Random来实现,它内部使用了CAS来实现。实际上,JDK1.7之后,提供了另外一个生成随机数的类ThreadLocalRandom,那么他们二者之间的性能是怎么样的呢?本文讲解了JDK中提供的两种生成随机数的方式,一个是JDK 1.0引入的Random类,另外一个是JDK1.7引入的类,由于底层的实现机制不同,的性能是远高于Random,建议后面大家在技术选型的时候优先使用。如果本文对你有帮助的话,请留下一个赞吧。原创 2022-12-14 23:51:10 · 513 阅读 · 0 评论 -
JAVA中的注解可以继承吗?
注解想必大家都用过,也叫元数据,是一种代码级别的注释,可以对类或者方法等元素做标记说明,比如Spring框架中的@Service,@Component等。那么今天我想问大家的是类被继承了,注解能否继承呢?可能会和大家想的不一样,感兴趣的可以往下看。自定义注解可以通过标记元注解@Inherited实现注解的继承,不过这只适用于类。如果要继承定义在接口或方法上的注解,可以使用Spring的工具类。如果本文对你有帮助的话,请留下一个赞吧欢迎关注个人公众号——JAVA旭阳程序员成神之路。原创 2022-12-13 16:55:46 · 553 阅读 · 0 评论 -
记一次InputStream流读取不完整留下的惨痛教训
首先,问问大家下面这段流读取的代码是否存在问题呢?try {// 根据inputStream的长度创建字节数组// 调用read 读取字节数组}实际上的确是有问题的,而且在线上环境结结实实的坑了我们一把。在代码编写过程中,available()方法仅用于估算接收数据的总长度或数据块的长度,不要用于任何需要准确计算的场合,更不要用于开辟一个可以刚好容纳所有数据的缓冲区。对于调用InputStream.read(…),务必进行循环调用,直至返回-1,无论输入数据源是网络数据还是本地文件。原创 2022-12-08 19:31:03 · 1985 阅读 · 0 评论 -
java的Frame和JFrame中的paint方法区别
我们知道,Java中每次重绘都会调用paint方法。 public void paint(Graphics g) ...{ //super.paint(g); Color c = g.getColor(); g.setColor(new Color(50,150,50)); g.fillOval(tankPos.x, tankPos.y, tankWid,转载 2013-08-12 00:31:08 · 1317 阅读 · 0 评论 -
Swing双缓冲机制
public void paint(Graphics g) { // 在重绘函数中实现双缓冲机制 offScreenImage = this.createImage(WIDTH, HEIGHT); // 获得截取图片的画布 gImage = offScreenImage.ge转载 2013-08-12 00:35:54 · 1949 阅读 · 0 评论 -
使用com.sun.awt.AWTUtilities这个类出现错误
When using com.sun.awt.AWTUtilities, Eclipse gives a error:- Access restriction: The method setWindowOpacity(Window, float) from the type AWTUtilities is not accessible due to restriction on r转载 2013-08-25 10:36:09 · 2311 阅读 · 0 评论 -
一个关于JTabel的DefaultCellEditor渲染很棒的例子
import java.awt.Color;import java.awt.event.WindowAdapter;import java.awt.event.WindowEvent; import javax.swing.JCheckBox;import javax.swing.JFrame;import javax.swing.JScrollPane;import原创 2013-08-27 12:32:25 · 1950 阅读 · 1 评论 -
MySQL中在含有GROUP BY的SELECT语句中显示COUNT()为0的结果
mysql> select * from t1;+-------+------+| level | name |+-------+------+| 1 | a || 1 | b || 1 | c || 2 | a || 2 | b || 4 | a || 5 | b |+----原创 2013-08-30 18:50:55 · 4947 阅读 · 0 评论 -
自定义JQuery插件----深入理解
一.介绍 插件编写的目的是给已经有的一系列方法或函数做一个封装,以便在其他地方重复使用,方便后期维护。 JQuery除了提供一个简单、有效的方式进行管理元素以及脚本,它还还提供了例外一种机制:即给核心模块增加自己的方法和额外的功能。通过这种机制,Jquery允许我们自己创建属于我们自己的插件,提高我们在开发过程中的效率。1.1JQuery的插件分为3中类型: (1)封装对象转载 2013-09-09 13:00:53 · 1140 阅读 · 0 评论 -
java.util.ConcurrentModificationException异常的处理
java.util.ConcurrentModificationException异常1、今天在写一个带缓存功能的访问代理程序时出现了java.util.ConcurrentModificationException异常,因为该异常是非捕获型异常而且很少见,所以费了些时间才找到问题所在,原来在通过Iterator进行遍历的时候,如果直接对HashMap进行操作后,再继续用之前的Iterat转载 2013-08-12 00:22:44 · 880 阅读 · 0 评论 -
Swing 不规则窗体的制作
终极解决之道经过反复的研究探索,终于获得了一个完美的解决方法:不用shape、不用抓图、不用workaround,真正的、彻底的、完全的、随意的在桌面上任意绘图、涂鸦、撒野,真正的属于程序员的Freedom!下面就来一起揭开这层窗户纸吧! 在程序中依次设置以下几个参数:设置窗口完全透明:AWTUtilities.setWindowOpaque(frame, false);设置窗转载 2013-08-23 19:13:30 · 3030 阅读 · 1 评论 -
Java的垃圾回收器GC机制
1.Java中finalize()的作用一主要是清理那些对象(并非使用new)获得了一块“特殊”的内存区域。程序员可以用finalize()来操作。 程序员都了解初始化的重要性,但常常会忘记同样也重要的清理工作。毕竟,谁需要清理一个int呢?但在使用程序库时,把一个对象用完后就“弃之不顾”的做法并非总是安全的。当然,Java有垃圾回收器负责回收无用对象占据的内存资源。但也有特殊情况:假定你的对象(转载 2013-07-24 11:44:04 · 595 阅读 · 0 评论 -
Enum枚举类型的使用
DK1.5引入了新的类型——枚举。在Java 中它虽然算个“小”功能,却给我的开发带来了“大”方便。用法一:常量在JDK1.5之前,我们定义常量都是: public static fianl.... 。现在好了,有了枚举,可以把相关的常量分组到一个枚举类型里,而且枚举提供了比常量更多的方法。 Java代码public enum Color{ RED,GREEN转载 2013-07-23 16:11:35 · 867 阅读 · 0 评论 -
Scanner类的学习
java.util包1)首先记住它的8中构造方法同PrintWriter类Scanner类同样可以直接对文件进行操作Scanner(File source) 构造一个新的 Scanner,它生成的值是从指定文件扫描的,底层平台的默认字符集转换成字符。 Scanner(File source, String csn)指定字符集 。 但如果用String的话是不能指定转载 2013-07-24 15:29:18 · 1194 阅读 · 0 评论 -
漂亮的Swing界面 --substance.jar
1.将substance.jar添加到类路径中2.将下列代码添加到你的程序的主执行类的main()方法中: try { UIManager.setLookAndFeel(new SubstanceLookAndFeel()); JFrame.setDefaultLookAndFeelDecorated(true);转载 2013-08-01 00:31:19 · 5975 阅读 · 1 评论 -
java字符串池(string pool)和字符串堆(heap)内存分配
java运行环境有一个字符串池(string pool),由String类维护。 执行语句 String str = "abc" 时,首先查看字符串池中是否存在字符串"abc",如果存在则直接将"abc"地址赋给str ,如果不存在则先在字符串池中新建一个字符串"abc",然后再将其赋给str。 执行语句 String str = new String("abc") 时,不管字符串转载 2013-07-25 13:36:53 · 1107 阅读 · 0 评论 -
Java基础:泛型类型的子类及通配符的使用
本文讲述以下几个方面的内容,试图说明泛型类型的子类及通配符的使用。 (1) 子类及替换原则; (2) 使用extends关键字的通配符; (3) 使用super关键字的通配符; (1) 子类及替换原则 在java语言中,我们通俗讲一个类是另一个类的子类型,是通过使用extends关键字去继承某一个类或者使用implements关键字去实现某些接转载 2013-07-26 16:47:55 · 949 阅读 · 0 评论 -
Vector和ArrayList的比较
Vector 还是ArrayList――哪一个更好,为什么? 要回答这个问题不能一概而论,有时候使用Vector比较好;有时是ArrayList,有时候这两个都不是 最好的选择。你别指望能够获得一个简单肯定答案,因为这要看你用它们干什么。下面有4个要考虑 的因素: l API l 同步处理 l 数据增长性 l 使用模式 下面针对这4个方面进行一一探讨 API转载 2013-07-29 14:31:41 · 607 阅读 · 0 评论 -
LinkList和ArrayList区别比较
一般大家都知道ArrayList和LinkedList的大致区别: 1.ArrayList是实现了基于动态数组的数据结构,LinkedList基于链表的数据结构。 2.对于随机访问get和set,ArrayList觉得优于LinkedList,因为LinkedList要移动指针。 3.对于新增和删除操作add和remove,LinedList比较占优势转载 2013-07-29 15:10:39 · 3211 阅读 · 0 评论 -
Java Swing中读取/写入图片到MySQL中类型转换
图片等二进制数据文件写入到数据库1、获取到 字节数组File headerFile = new File(FileName);FileInputStream inputStream = newFileInputStream(headerFile);byte[] imageData = new byte[inputStream.available()];inputStream.r转载 2013-08-06 18:44:03 · 2127 阅读 · 1 评论 -
Swing 实现文件选择器的显示,及图片(blob类型)在数据库的输入,输出问题
通过文件选择器,选择图片文件并把图片文件 存入 数据库的 blob类型字段中 及直接从数据库中读取图片文件(Blob --> 图片) 步骤: 1、创建文件选择器,获取选择的图片文件 //声明文件,表示要存入数组的图片文件,做为全局变量 File file = null;转载 2013-08-19 13:43:27 · 1442 阅读 · 1 评论 -
设置JFrame的背景图片,实现Jtable 透明
JFrame的背景图片:把这段代码加在JFrame的构造函数中JPanel panel = new JPanel(){public void paintComponent(Graphics g){ try{ g.drawImage(ImageIO.read(new File("图片路径")),0 ,0,this.转载 2013-08-07 10:12:35 · 2823 阅读 · 0 评论 -
窗口最大化
1、JFrame 窗口最大化,在构造函数中 添加如下代码this.setExtendedState(JFrame.MAXIMIZED_BOTH);2、JInternalFrame窗口最大化,需要在添加到JFrame的DesktopPane之后设置,代码如下:bookFrame.setMaximum(true);bookFrame是JInternalFrame的实例化对象3、原创 2013-08-20 09:59:08 · 996 阅读 · 0 评论 -
详细解析Java中抽象类和接口的区别
在Java语言中, abstract class 和interface 是支持抽象类定义的两种机制。正是由于这两种机制的存在,才赋予了Java强大的 面向对象能力。abstract class和interface之间在对于抽象类定义的支持方面具有很大的相似性,甚至可以相互替换,因此很多开发者在进 行抽象类定义时对于abstract class和interface的选择显得比较随意。其实,两转载 2013-07-23 12:40:47 · 396 阅读 · 0 评论