java基础编程
文章平均质量分 64
曾卫
笃信科技引领金融的理念践行者,成为国际领先的个人金融生活服务提供商的推动者,目前上海财经大学研究生在读。
展开
-
java创建线程的四种方式
创建线程的四种方式创建线程的四种方式继承Thread类实现Runnable接口通过Executor框架来创建线程池,高效实现实现Callable接口学习Java的同学注意了!!!学习过程中遇到什么问题或者想获取学习资源的话,欢迎加入Java学习交流群,群号码:543120397 我们一起学Java!创建线程的四种方式1.继承Thread类(内有run方法、start方法、join方法)2.实现Runnable接口(只有run方法)3.通过Executor框架来创建线程池,高效实现(execu原创 2020-12-03 19:24:48 · 369 阅读 · 0 评论 -
解决java线程安全的五种方式
解决java线程安全的五种方式采用AtomicInteger等原子类使用synchronized同步方法使用synchronized代码块锁使用Lock锁使用Semaphore信号量学习Java的同学注意了!!!学习过程中遇到什么问题或者想获取学习资源的话,欢迎加入Java学习交流群,群号码:543120397 我们一起学Java!采用AtomicInteger等原子类java.util.concurrent.atomic.AtomicIntegerprivate AtomicInteger原创 2020-12-03 13:38:36 · 214 阅读 · 0 评论 -
java内存模型的三大特性
java内存模型的三大特性原子性可见性有序性学习Java的同学注意了!!!学习过程中遇到什么问题或者想获取学习资源的话,欢迎加入Java学习交流群,群号码:543120397 我们一起学Java!原子性可见性有序性...原创 2020-11-10 15:24:28 · 214 阅读 · 0 评论 -
java关键字之final
java关键字之final学习Java的同学注意了!!!学习过程中遇到什么问题或者想获取学习资源的话,欢迎加入Java学习交流群,群号码:543120397 我们一起学Java!原创 2020-10-29 11:25:40 · 140 阅读 · 0 评论 -
java赋值传参的写法
java赋值的写法setPriority0(priority = newPriority)学习Java的同学注意了!!!学习过程中遇到什么问题或者想获取学习资源的话,欢迎加入Java学习交流群,群号码:543120397 我们一起学Java!public final void setPriority(int newPriority) { ThreadGroup g; checkAccess(); if (newPriority > MAX_PRIORITY || ne原创 2020-10-29 11:23:54 · 408 阅读 · 0 评论 -
java线程Thread之start()、run()、join()区别
@toc原创 2020-10-28 10:52:20 · 1036 阅读 · 0 评论 -
java关键字之volatile
java关键字之volatile学习Java的同学注意了!!!学习过程中遇到什么问题或者想获取学习资源的话,欢迎加入Java学习交流群,群号码:543120397 我们一起学Java!原创 2020-10-28 10:50:59 · 138 阅读 · 0 评论 -
java中String的可变参数
java中String的可变参数基本介绍可变参数特点源码引用场景应用加和处理参数校验学习Java的同学注意了!!!学习过程中遇到什么问题或者想获取学习资源的话,欢迎加入Java学习交流群,群号码:543120397 我们一起学Java!基本介绍可变参数JDK1.5增加了新特性,可变参数,适用于参数个数不确定,类型确定的情况,java把可变参数当做数组来处理。注意:可变参数必须位于最后一项。原因:当可变参数个数多余一个时,必将有一个不是最后一项,所以只支持有一个可变参数。因为参数个原创 2020-09-23 10:44:47 · 579 阅读 · 0 评论 -
Double类型数据之自动装解箱、加解密用途
Double类型数据之自动装解箱、加解密用途自动解箱(自动拆箱)测试代码输出结果自动装箱加解密用途自动解箱(自动拆箱)测试代码Double db = new Double(16);double db1 = 16.0;Double db3 = new Double(16);System.out.println("---------------------华丽的分割线---------------------");System.out.println(db == db1);//db发生了自动解箱动原创 2020-09-01 10:31:35 · 351 阅读 · 0 评论 -
java.lang.*的System.properties属性详解
java.lang.*的System.properties属性详解输出效果java.runtime.namesun.boot.library.pathjava.vm.versionjava.vendor.url输出效果{ java.runtime.name=Java(TM) SE Runtime Environment, sun.boot.library.path=C:\Program Files\Java\jdk1.8.0_101\jre\bin, java.vm.version=25.10原创 2020-08-28 11:29:42 · 298 阅读 · 0 评论 -
int类型转换byte类型
int类型转换byte类型转换过程原码、反码与补码的关系举例转换过程计算机中,int类型占用4个字节,byte类型占用1个字节;当int类型强转为byte类型时,计算机会截取最后的八位(1个字节);由于计算机存储数据时,都是以补码的形式进行存储。然而,我们通常看到的数却是计算机存储的补码先转换成反码,后转换成原码,再转换成十进制呈现的。原码、反码与补码的关系正数: 原码 = 反码 = 补码负数: 原码取反 = 反码(符号位不变); 反码 + 1 = 补码(符号位上的进位舍转载 2020-08-27 15:18:40 · 17276 阅读 · 2 评论 -
java关键字之native使用
java关键字之native使用一、认识 native 即 JNI,Java Native Interface二、用 Java 调用 C 的“Hello,JNI”三、JNI 调用 C 流程图四、其他介绍初次遇见 native是在 java.lang.Object 源码中的一个hashCode方法:public native int hashCode();为什么有个native呢?这是我所要学习的地方,所以下面想要总结下native。一、认识 native 即 JNI,Java Native Int转载 2020-08-26 17:08:44 · 430 阅读 · 0 评论 -
jdk源码之坑Boolean.getBoolean用法
jdk源码之坑Boolean.getBoolean用法源码介绍正确用法相信很多人被Boolean.getBoolean(String name)欺骗过,想当然的认为它是将“true”或者“false”转换为Boolean类型的API。错,完全不是!下面我们就详细讲一下Boolean.getBoolean(String name)的用法。源码介绍首先我们看下Boolean.getBoolean(String name)的源码public static boolean getBoolean(St转载 2020-08-26 16:08:52 · 295 阅读 · 0 评论 -
java关键字之transient使用
java关键字之transient使用前言功能前言近期在查看jdk源码时经常看到有使用这个关键字,修饰成员变量,所以查阅了一下其用处,结合样例代码,详细分析。功能转载 2020-08-20 10:20:05 · 307 阅读 · 0 评论 -
java-四种数组拷贝方式分析
java-四种拷贝方式分析System.arraycopy为什么System.arraycopy执行的是浅拷贝,但二维数组的内存地址却不一样?new和直接clone的区别?Cloneable接口父类clone方法是否线程安全?如何测试一个源码方法是否线程安全?近期在查阅jdk源码时发现,底层采用了大量System.arraycopy方法,同时查阅到java当中,常用的四种拷贝的方式,如下:forSystem.arraycopyarrays.copyofclone(实现Cloneable接口)原创 2020-07-27 17:45:04 · 174 阅读 · 0 评论 -
javaMail SMTPSendFailedException: java邮件发送常见的异常类型
•421 HL:REP 该IP发送行为异常,存在接收者大量不存在情况,被临时禁止连接。请检查是否有用户发送病毒或者垃圾邮件,并核对发送列表有效性;•421 HL:ICC 该IP同时并发连接数过大,超过了网易的限制,被临时禁止连接。请检查是否有用户发送病毒或者垃圾邮件,并降低IP并发连接数量;•421 HL:IFC 该IP短期内发送了大量信件,超过了网易的限制,被临时禁止连接。请检查是否有用户发送病毒或者垃圾邮件,并降低发送频率;•421 HL:MEP 该IP发送行为异常,存在大量伪造发送域域名行为,.转载 2020-06-15 17:28:50 · 2928 阅读 · 0 评论 -
在spring boot中使用java线程池ExecutorService
转发地址:https://blog.csdn.net/qq_35033270/article/details/79968974在spring boot中使用java线程池ExecutorService1. 认识java线程池1.1 在什么情况下使用线程池?1.单个任务处理的时间比较短2.需处理的任务的数量大1.2 使用线程池的好处1.减少在创建和销毁线程上所花的时间以及系统...转载 2019-12-20 19:37:13 · 438 阅读 · 0 评论 -
Iterator迭代器-ListIterator-Enumeration枚举类接口的特点和区别
1、Iterator的特点:API中是这样解释的: 对collection进行迭代的迭代器。它取代了Enumeration.迭代器与枚举有两点不同: A.迭代器允许调用者利用定义良好的语义在迭代期间从迭代器所指向的collection移除元素。 B.在方法名上得到了改进。常用的方法有 hasNext()如果仍有元素可以迭代,则返回true. ...原创 2015-04-25 11:22:22 · 2127 阅读 · 0 评论 -
Java垃圾回收机制
1. 垃圾回收的意义 在C++中,对象所占的内存在程序结束运行之前一直被占用,在明确释放之前不能分配给其它对象;而在Java中,当没有对象引用指向原先分配给某个对象的内存时,该内存便成为垃圾。JVM的一个系统级线程会自动释放该内存块。垃圾回收意味着程序不再需要的对象是"无用信息",这些信息将被丢弃。当一个对象不再被引用的时候,内存回收它占领的空间,以便空间被后来的新对象使用。事实上,除了释放转载 2017-08-29 18:09:36 · 188 阅读 · 0 评论 -
9种常见的Java不规范代码
在工作上,我最近对一个现有的Java项目代码进行了清理。完成之后,我发现了一些反复出现的不规范代码。所以,我把它们整理成了一个列表出来分享给我的同行希望能引起注意并改善代码的质量和可维护性。这个列表不区分顺序,全部来自一些代码质量检查工具,如 CheckStyle, FindBugs 和 PMD。在Eclipse中格式化源代码并管理import语句Eclipse提供了自动格式化转载 2017-09-02 16:53:15 · 556 阅读 · 0 评论 -
java中静态代码块的用法 static用法详解
java中静态代码块的用法 static用法详解 static表示“全局”或者“静态”的意思,用来修饰成员变量和成员方法,也可以形成静态static代码块,但是Java语言中没有全局变量的概念。被static修饰的成员变量和成员方法独立于该类的任何对象。也就是说,它不依赖类特定的实例,被类的所有实例共享。 只要这个类被加载,Java虚拟机就能根据类名在运行时数据区的转载 2017-11-28 18:32:43 · 708 阅读 · 0 评论 -
UNIX时间戳的应用-JAVA
概念: System.currentTimeMillis() :返回当前系统的毫秒数,由于取得的是毫秒数,所以在处理UNIX时间戳的时候需要转换成秒 也就是: long epoch = System.currentTimeMillis()/1000;方法: 1、获取当前系统的UNIX时间戳 System.out.pr转载 2018-01-04 14:57:12 · 458 阅读 · 0 评论 -
40个Java多线程问题总结
前言Java多线程分类中写了21篇多线程的文章,21篇文章的内容很多,个人认为,学习,内容越多、越杂的知识,越需要进行深刻的总结,这样才能记忆深刻,将知识变成自己的。这篇文章主要是对多线程的问题进行总结的,因此罗列了40个多线程的问题。这些多线程的问题,有些来源于各大网站、有些来源于自己的思考。可能有些问题网上有、可能有些问题对应的答案也有、也可能有些各位网友也都看过,但是本文写作的重心就转载 2018-01-22 18:27:30 · 151 阅读 · 0 评论 -
String,StringBuffer与StringBuilder的区别?
三者区别 String 字符串常量 StringBuffer 字符串变量(线程安全) StringBuilder 字符串变量(非线程安全)根本差异简要的说, String 类型和 StringBuffer 类型的主要性能区别其实在于 String 是不可变的对象, 因此在每次对 String 类型进行改变的时候其实都等同于生成了一个新的 String 对象,然后将转载 2018-01-22 18:41:43 · 114 阅读 · 0 评论 -
Java中Native关键字的作用
阅读目录一、认识 native 即 JNI,Java Native Interface二、用 Java 调用 C 的“Hello,JNI”三、JNI 调用 C 流程图四、其他介绍初次遇见 native是在 java.lang.Object 源码中的一个hashCode方法:1public native int ha转载 2018-01-23 21:40:52 · 2219 阅读 · 0 评论 -
谈谈面试--哈希表系列
前言: 我以前在百度的mentor, 在面试时特喜欢考察哈希表. 那时的我满是疑惑和不解, 觉得这东西很基础, 不就的分桶理念(以空间换时间)和散列函数选择吗? 最多再考察点冲突解决方案. 为何不考察类似跳跃表, LSM树等高级数据结构呢? 随着工程实践的积累, 慢慢发现了自己当初的肤浅. 面试的切入点, 最好是大家所熟悉的, 但又能从中深度挖掘/剖析和具有区分度的. 本文结合转载 2018-01-23 21:44:45 · 390 阅读 · 0 评论 -
哈希表(初级阶段)
概述 最近刚好有空来学习哈希表的相关知识,预计分成三个阶段去了解哈希表及其实现,目前这篇是初级阶段。 初级阶段:了解java当中hashCode的生成,及8种基本数据包装类型的hashCode码的各自生成,及源码解析。 中级阶段:了解哈希表的数据结构及实现,LinkedHashMap的原理。 高级阶段:了解哈希表的优化,Hash碰撞攻击,分段锁机制。测试代码package com.al原创 2018-01-23 23:02:21 · 285 阅读 · 0 评论 -
如何读取项目工程下的properties文件
读取classess目录下的文件代码实现/** * 根据资源名称获取Properties对象 * @param propertiesName * @return */ protected static Properties getProperties(String propertiesName) { String pa原创 2018-01-13 16:04:15 · 1141 阅读 · 0 评论 -
加号和stringbuffer.append()的区别
String中三种加法的区别JAVA的确是一种令程序员陷入两难境地的言语, 确切的说是思想. 它提供了如此丰富的library,让程序员能够很容易的写出功能强大的程序. 同时它也封装了如此多的细节, 让程序员能够轻易的写出很拙略的程序. 它所代表的object指向思想设计之初是为了把程序员从纷繁复杂的编程细节中解放出来,来达到对已有程序的利用. 但是在编程 实际上又要求程序员了解其实现的细节而...转载 2018-10-10 14:31:42 · 792 阅读 · 0 评论 -
ArrayList源码解读之remove(Object o)和remve(int index)
ArrayList源码解读之remove(Object o)和remve(int index)样例/** * 2.测试remove和fastRemove区别 * E remove(int index) */ public static void test2(){ ArrayList list1 = new ArrayList(); ...原创 2019-03-27 17:03:26 · 482 阅读 · 0 评论 -
设计模式之单例模式(线程安全)
可以说单例模式是所有设计模式中最简单的一种。单例模式就是说系统中对于某类的只能有一个对象,不可能出来第二个。单例模式也是23中设计模式中在面试时少数几个会要求写代码的模式之一。主要考察的是多线程下面单例模式的线程安全性问题。1.多线程安全单例模式实例一(不使用同步锁)1 public class Singleton {2 private static转载 2017-09-05 20:54:16 · 186 阅读 · 0 评论 -
通过JDBC访问数据库的基本步骤
首先将jdbc的jar包引入到程序中,放到WEB-INF/lib文件夹下。jar包可以自己下载,或者直接从oracle的安装包(\Oracle\Product\10.2.0\db_1\jdbc\lib)中拿出来。一、加载JDBC驱动程序 在和某一特定数据库建立连接之前,必须首先加载一种可用的JDBC驱动程序到JVM。使用Java.lang.Class类的forN转载 2017-09-04 00:03:21 · 1526 阅读 · 0 评论 -
JDK1.5/1.6/1.7之新特性总结
JDK1.5/1.6/1.7之新特性总结开发过程中接触到了从jdk1.5---jdk1.7的使用,在不同的阶段,都使用过了jdk的一些新特性,操作起来更加方面啦!特此总结了下,与喜欢it 的朋友共勉!呵呵以下是测试代码:JDK1.5新特性:1.自动装箱与拆箱:Integer iObj = 3;System.out.println(iObj转载 2017-08-09 09:41:00 · 354 阅读 · 0 评论 -
对代码命名的一点思考和理解
一个软件最后都会落实到代码。而代码,其背后的架构设计或设计思想或模式固然重要,但我觉得更重要的东西则是良好的命名。混乱或错误的命名不仅让我们对代码难以理解,更糟糕的是,会误导我们的思维,导致对代码的理解完全错误。相反,良好的命名,则可以让我们的代码非常容易读懂,也能向读者正确表达事物以及逻辑的本质,从而使得代码的可维护性就大大增强,读命名好的文章是非常流畅的,会有一种享受的感觉。另外一点也转载 2016-11-02 14:53:45 · 281 阅读 · 0 评论 -
java正则表达式 过滤特殊字符的正则表达式
// 过滤特殊字符 public staticString StringFilter(String str) throws PatternSyntaxException { // 只允许字母和数字 // String regEx ="[^a-zA-Z0-9]"; // 清除掉所有特殊字符 String regEx="[`~!@#$%^&*()+=|{}':;',\\[\\].!@#¥%转载 2016-07-27 14:34:27 · 1974 阅读 · 0 评论 -
使用java的GUI设计一个简单的登陆界面(1)
实现效果如下import java.awt.BorderLayout;import java.awt.Container;import java.awt.FlowLayout;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JPane...原创 2015-05-26 09:13:13 · 19635 阅读 · 0 评论 -
各种编码UNICODE、UTF-8、ANSI、ASCII、GB2312、GBK详解
GBK,ISO-8859-1,GB2312的本质区别编码有几种 ,计算机最初是在美国等国家发明的 所以表示字符只有简单的几个字母只要对字母进行编码就好 我们标准码 iso-8859-1 这就是一个标准但是后来计算机普及了 于是就中国要使用计算机了 但是机器不认得中文,于是就有了国际码。 gbk gb2312都是这类。两个其实一个,一个是标准(发布的代号),一个是简称。后来多了个阿拉伯语、日转载 2015-06-22 21:46:30 · 8367 阅读 · 0 评论 -
java集合框架List之ArrayList(二) .
在上一篇文章,我们大概了解了ArrayList是个啥以及它的常用操作,那么对于某些操作的内部情况到底是怎么处理的,我们还没有实质性的了解,接下来我们一起来探讨探讨。ArrayList的动态扩容ArrayList初始化 ArrayList提供三个构造器,一个是可以指定初始化容器的大小,一个是使用默认的容器大小,一个是使用另一个集合来作为自己的初始化元素,如下:// 使用默认空间大转载 2015-04-28 17:33:18 · 364 阅读 · 0 评论 -
java集合框架概述
转载地址:http://blog.csdn.net/taxuejava/article/details/23705457早在Java 2中之前,Java就提供了特设类。比如:Dictionary, Vector, Stack, 和Properties这些类用来存储和操作对象组。虽然这些类都非常有用,但是它们缺少一个核心的,统一的主题。由于这个原因,使用Vector类的方式和使用Proper转载 2015-04-28 17:25:48 · 427 阅读 · 0 评论 -
java集合框架List之ArrayList(一) .
转载地址:http://blog.csdn.net/taxuejava/article/details/44960181java集合框架List之ArrayListlist作为我们日常工作中常用的一种集合容器,有必要对这进行一个详细的了解。一个有序的Collection(也称序列),元素可以重复。确切的讲,列表通常允许满足 e1.equals(e2) 的元素对 e1 和 e2,并且转载 2015-04-28 17:28:42 · 430 阅读 · 0 评论