java基础
miracle_8
vip文章全部取消
展开
-
idea远程debug调试设置
远程调试需要设置两个地方:idea调试端远程服务端目前只针对java程序步骤如下:1. idea调试端: Run -> Edit Configurations(图1)-> +号 -> Remote(图2) -> 配置remote的信息(图3),端口可以随意配置,不应该与服务端的端口重复2. 远程服务端java程序启动的时候需要加上调试配置信息 -agentlib:jdwp=transport=dt_socket,server=y,suspend=y,add原创 2020-05-26 15:45:39 · 1613 阅读 · 0 评论 -
spark(scala)获取fsimage,并分析出fsimage中的小文件信息
spark(scala)获取fsimage,并分析出fsimage中的小文件信息项目要求:获取fsimage并解析, 做聚合操作采用spark并发处理// pom.xml<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" ...原创 2020-03-24 16:14:57 · 737 阅读 · 0 评论 -
手动执行加载日志配置文件
在启动项目后,发现自己定义得日志文件死活打印不出来,jar包冲突已经排除,日志配置文件的正确性已经排除,并且这时项目急着上线,该怎么办呢? 答案是:自己主动去加载日志文件,步骤如下:注: a. 本例是web程序 b. 有人可能会疑问为什么不用spring的初始化,因为spring的初始化会导致service层的日志失效,所以必须在spring之前将日志类LogManager初始化完成,这...原创 2020-03-14 10:20:25 · 322 阅读 · 0 评论 -
java 内部类(嵌套类)、内部接口(嵌套接口)
内部类Java中的内部类共分为四种:静态内部类:static inner class (also called nested class)成员内部类:member inner class局部内部类:local inner class匿名内部类:anonymous inner class内部类就相当于一个外部类的成员变量,所以可以直接访问外部变量,外部类不能直接访问内部类变量,必须通...原创 2020-01-07 17:04:04 · 961 阅读 · 0 评论 -
java锁系列---分布式时的文件锁FileLock(排他锁)
package com.sm.jboss;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import java.io.File;import java.io.IOException;import java.io.RandomAccessFile;import java.lang.management.Managemen...原创 2020-01-06 19:33:52 · 1242 阅读 · 2 评论 -
java对象的占用字节数-- java高级篇
java对象的内存组成java对象的内存以字节为单位,且必须是8的倍数,它的构成由3部分组成:对象头: mark word(8字节/64bit)、oop指针(对象地址指针,可能是4字节也可能是8字节,默认4字节)实例数据:基础数据类型(按照java的基础字节数) + 引用数据类型(可能是4字节也可能是8字节,默认4字节)对齐内存填充: 整个对象的字节数必须是8的倍数,不足则需要补充其...原创 2019-12-25 11:32:30 · 1690 阅读 · 2 评论 -
Java基础 ----- 判断对象的类型
1、 判断对象的类型:instanceOf 和 isInstance 或者直接将对象强转给任意一个类型,如果转换成功,则可以确定,如果不成功,在异常提示中可以确定类型public static void main(String[] args) { Integer i = new Integer(10); System.out.println(i instanc...原创 2018-05-22 13:35:59 · 7618 阅读 · 0 评论 -
Java基础-------------------代码编写总结
1、 项目中要多注意空指针: 一般出现在对象调用方法。A.method(): 如果A为null,则会提示空指针; 尤其是map或者list,map.size(): 如果map为null,则会提示空指针;根据下标获取数组时,array[10]: 如果数组array的长度小于10,会提示空指针。 解决方法: 使用自己封装的类, 进行调用,避免空指针问题2、 异常是捕获还是抛出的问题:在代码中,...原创 2018-05-22 11:20:54 · 243 阅读 · 0 评论 -
java中手动释放资源的先后顺序
1、 流相关资源流相关资源一般遵循: 1)先开后关,先开的输入流,再开的输出流,通过读取输入流写入输出流中,那么应该先关输出流,再关输入流,但是一般关闭输入输出流操作都是在读写完成后的finally中执行的,所以即使先关输入流,再关输出流也不会任何问题,因为读写操作没有进行了。2)先关外层,再关内层。如BufferedInputStream包装了一个FileInputStream,那么先...原创 2018-05-12 15:43:26 · 3394 阅读 · 3 评论 -
Java中的file.encoding和sun.jnu.encoding属性的设置含义
public class PropertiesTest { public static void main(String[] args) { System.out.println("file.encoding:"+System.getProperty("file.encoding")); System.out.println("sun.jnu.e...原创 2018-05-12 11:23:19 · 9419 阅读 · 0 评论 -
Java 比较方法汇总 ---- Comparable
Java 比较方法汇总一、 排序接口1、 类中实现接口Comparable, 调用compareTo方法: 如果 返回值大于0,则将大的数放后面;如果返回值等于0,则不做任何处理; 如果返回值小于0, 则将小的数放前面。也就是说 java默认的排序方式是升序排序package com.m;import java.io.Serializable;import java.util.C...原创 2018-03-14 15:28:59 · 5954 阅读 · 0 评论 -
java基础 ---- 乐观锁和悲观锁
java基础 —- 乐观锁和悲观锁一、前提:什么场景下需要使用锁?在多节点部署或者多线程执行时,同一个时间可能有多个线程更新相同数据,产生冲突,这就是并发问题。这样的情况下会出现以下问题:更新丢失:一个事务更新数据后,被另一个更新数据的事务覆盖。脏读:一个事务读取另一个事物为提交的数据,即为脏读。其次还有幻读。。针对并发引入并发控制机制,即加锁。加锁的目的是在同一个时间只有一个事务在更新原创 2018-03-02 11:18:31 · 268 阅读 · 0 评论 -
Java基础 -----volatile
Volatile 1. 可见性: 当一个共享变量被volatile修饰时,它会保证修改的值会立刻被更新到主存,当有其他线程需要读取时,它会去内存中读取新值。而普通的共享变量不能保证可见性,因为普通共享变量被修改之后,什么时候写入主存是不确定的,当其他线程去读取时,此时内存中可能还是原来的旧值,因此无法保证可见性 另外: 通过synchronized和Lock也能保证可见性,synchronize原创 2018-02-08 10:32:57 · 154 阅读 · 0 评论 -
Java基础----final修饰
final关键字修饰方法参数如果修饰的是基本类型,那么在这个方法的内部,基本类型的值是不能改变的如果修饰的是引用类型,那么就需要注意了,引用类型变量所指的引用是不能改变的,但引用类型变量的值是可以改变的public static void checkInt(final User user) { // user变量的引用是不能改变的,否则的话,编译会报错 // user = ne原创 2018-02-13 15:43:19 · 151 阅读 · 0 评论 -
java基础 ---- 公平锁和非公平锁以及同步屏障
公平锁和非公平锁一、原因 1. CPU在调度线程的时候是从等待队列里随机挑选一个线程,由于这种随机性所以是无法保证线程先到先得的(synchronized控制的锁就是这种非公平锁),但这样就会产生饥饿现象,即有些线程(优先级较低的线程)可能永远也无法获取CPU的执行权,优先级高的线程会不断的强制它的资源。那么如何解决饥饿问题呢,这就需要公平锁了产生饥饿的另一个原因是: 某个线程占据资源不释放,那原创 2018-02-13 15:39:33 · 253 阅读 · 0 评论 -
Java基础----hashmap
package com.hashmap;import java.lang.reflect.Field;import java.util.HashMap;import java.util.Map;public class HashMapDetail { public static void main(String[] args) throws Exception{ // 初始原创 2018-02-11 16:28:11 · 156 阅读 · 0 评论 -
java基础 ----- 面向对象思维(OO: Object Oriented)
OO思维(Object Oriented)考虑类: 名词 属性: 不可脱离具体的应用环境 方法: 站在名词(使用者)的角度去看动作 类之间的关系 隐藏(封装): 降低耦合度 继承: 父类引用指向子类对象, a is a B,a是一个B,耦合度比较强,减少使用 多态: 核心中的核心 带来了可扩展性(Extensibility) 三个特性: 继承、重写、...原创 2018-07-16 15:35:33 · 212 阅读 · 0 评论 -
java基础 ---- 动态加载Java文件
动态加载java文件package com.m.test;import java.io.FileWriter;import java.lang.reflect.Constructor;import java.net.URL;import java.net.URLClassLoader;import javax.tools.JavaCompiler;import javax.to...原创 2018-07-16 15:53:52 · 2204 阅读 · 0 评论 -
实体类的注解 (javax.validation.constraints、com.fasterxml.jackson.annotation)
@NotEmpty: 加了@NotEmpty的String类、Collection、Map、数组,是不能为null或者长度为0的(String、Collection、Map的isEmpty()方法),一般用于集合,字符串得话可以存在纯空格的@NotBlank: 和{@code NotEmpty}不同的是,尾部空格被忽略,也就是说,纯空格的String也是不符合规则的。所以才会说@NotB...原创 2019-09-25 17:08:36 · 389 阅读 · 0 评论 -
java 基础数据类型相关操作
1.float类型的字段比较:float a = 10.0f;floag b = 10.01f;double exp = 10E-10;if (Math.abs(a - b) < -1* exp || Math.abs(a - b) > exp ) { // 操作}原因:float是有精确度的数据,不能直接等号比较java中浮点数的存储机制...原创 2019-08-14 11:59:42 · 136 阅读 · 0 评论 -
mysql行级锁 java 实现
mysql行级锁:数据库引擎: InnerDB,其他的不支持行锁所在方法要加上事务注解, 必须加上: @Transactional(isolation = Isolation.READ_COMMITTED)查询sql举例:select * from global_lock where object=#{object} for update;注意:timeout必须设置,否则,一旦...原创 2019-06-27 21:04:05 · 4161 阅读 · 4 评论 -
Java中的HashCode相关说明
Equals与HashCode:1、hashCode的存在主要是用于查找的快捷性,如Hashtable,HashMap等,hashCode是用来在散列存储结构中确定对象的存储地址的;2、如果两个对象相同,就是适用于equals(Java.lang.Object) 方法,那么这两个对象的hashCode一定要相同;3、如果对象的equals方法被重写,那么对象的hashCode也尽量重写,并且...原创 2018-11-01 09:59:34 · 218 阅读 · 0 评论 -
xml、dtd、xsd
xml、dtd、xsdxml:XML 指可扩展标记语言(EXtensible Markup Language)XML 是一种标记语言,很类似 HTMLXML 被设计用来传输和存储数据。XML 的设计宗旨是传输数据,而非显示数据XML 标签没有被预定义。您需要自行定义标签。XML 文档形成一种树结构xml的语法规则所有 XML 元素都须有关闭标签XML 标签对大小写敏感...原创 2018-09-26 17:22:15 · 345 阅读 · 0 评论 -
java多线程基础(一)
多线程线程安全: 当多个线程访问某一个类(对象或方法)时,这个类始终都能表现正确的行为,那么这个类(对象或方法)就是线程安全的辨识点: A extends Thread -&gt; A a = new A(); a.setName(“a”); -&gt; Thread t1 = new Thread(a, “t1”); this.getName()和Thread.currentThrea...原创 2018-09-04 16:23:54 · 228 阅读 · 0 评论 -
JDK线程池详解
JDK多任务执行框架(线程池): 线程框架Executor newFixedThreadPool() newCachedThreadPool() newSingleThreadPool() newScheduledThreadPool()自定义线程池: ThreadPoolExecutor(corePoolSize, maximumPoolSize, keepAliveTime, T...原创 2018-08-31 15:51:26 · 284 阅读 · 0 评论 -
每天练习的java基础题目
每天练习的java基础题目1、 链表操作: 增加数据 取得链表长度 判断空链表 内容查询 根据索引取得数据 修改链表数据 删除链表数据 对象数组转换2、 工厂设计模式 | 代理设计模式3、 equals方法代码: Link.java// 链表操作public class Link { private class Node { priv...原创 2018-07-06 16:49:03 · 585 阅读 · 0 评论 -
java基础----访问控制符范围与命名要求
关于命名要求: 1、 类名称每一个单词的首字母大写,其余字母小写,例如: StudentInfo 2、 属性名称第一个单词字母小写,而后每个单词首字母大写,例如:studentName 3、 方法名称第一个单词字母小写,而后每个单词首字母大写,例如:getName() 4、 常亮名称使用大写字母表示,例如: MSG 5、 包名称使用小写字母,例如: com.m.demo...原创 2018-07-05 20:17:05 · 195 阅读 · 0 评论 -
java命令语句(一)
package com.m;public class Test { public void method(){}}1、 打包编译此文件: javac -d . Test.java 此时会形成”包.类”的形式 2、 打包com包文件夹里面的class文件: jar -cvf test.jar com 3、 生成的test.jar文件并不能直接使用,必须配置CLASSP...原创 2018-07-05 20:10:58 · 413 阅读 · 0 评论 -
java基础 ---- 关键字 strictfp
自Java2以来,Java语言增加了一个关键字strictfp,虽然这个关键字在大多数场合比较少用,但是还是有必要了解一下。strictfp 的意思是FP-strict,也就是说精确浮点的意思。在Java虚拟机进行浮点运算时,如果没有指定strictfp关键字时,Java的编译器以及运 行环境在对浮点运算的表达式是采取一种近似于我行我素的行为来完成这些操作,以致于得到的结果往往无法令你满意。而一旦使原创 2018-02-03 16:28:36 · 278 阅读 · 0 评论 -
java基础----基础类型字节数
一、 char的字节数 1. “字节”是byte, “位”是bit 2. 1byte = 8bit char在java中是2个字节,java采用unicode,2个字节(16位)来表示一个字符 通常 gbk/gb2312是2个字节,utf-8是3个字节package com.download;public class WordCount { public static原创 2018-01-23 14:06:11 · 1078 阅读 · 0 评论 -
java基础----解析json文件
一 、 gson/** * 采用gson解析json * * GSON是Google开发的Java API,用于转换Java对象和Json对象 * @param jsonFile {****} */ public static void parseJsonFile(File jsonFile) { byte[] buff =原创 2018-02-03 16:05:39 · 260 阅读 · 0 评论 -
Java基础(三)-----------接口/多态
1、 接口: 与继承关系类似,接口与实现类之间存在多态性11、接口特性: a). 接口可以多重实现 b). 接口中声明的属性默认为public static final的,也只能是public static final的 c). 接口中只能定义抽象方法,而且这些方法默认为public的,也只能是public的 d). 接口可以继承其他的接口,并添加新的属性和抽象方法 注: jdk1.8支原创 2017-05-17 21:08:29 · 243 阅读 · 0 评论 -
java基础(一)---------- 基础类型
1、 set和list区别 set: 元素无放入顺序,元素不可重复,位置固定,无序不可改变; list: 元素有放入顺序,元素可以重复,有序可重复2、 treemap和hashmap区别 (有序的)treemap: 基于红黑树实现,适用于按自然顺序或自定义顺序遍历key (无序的)hashmap: 基于哈希表实现,适用于在map中插入、删除和定位元素3、 arraylist和linkedli原创 2017-02-17 23:39:42 · 414 阅读 · 0 评论 -
java多线程(二)---------------ThreadLocal总结
ThreadLocal1、 理解: 很多地方叫做线程本地变量,也叫做线程本地存储。ThreadLocal为变量在每个线程中创建了一个副本,那么每个线程可以访问自己内部的副本变量2、 总结: a. 实际的通过ThreadLocal创建的副本是存储在每个线程自己的threadLocals对象中的 b. 为何ThreadLocals的类型ThreadLocalMap的键值为ThreadLocal原创 2017-09-21 17:18:32 · 179 阅读 · 0 评论 -
Java基础(七)---- 反射与框架的问题
反射与框架的问题:1、 框架与框架要解决的核心问题: 我做房子卖给用户住,由用户自己安装门窗和空调,我做的房子是框架,用户需要使用我的框架,把门窗插入进我提供的框架中。框架与工具类有区别,工具类被用户的类调用,而框架则是调用用户提供的类2、 框架要解决的核心问题: a. 我在写框架(房子)时,你这个用户可能还在上小学,还不会写程序呢? 我写的框架程序怎样能调用到你以后写的类(门窗)呢?b. 因为原创 2017-09-22 10:54:35 · 216 阅读 · 0 评论 -
Java基础(八) -------- UML图
Java基础(八) ——– UML图1、 定义: Unified Modeling Language (UML)又称统一建模语言或标准建模语言 UML规范用来描述建模的概念有,类(对象的)、对象、关联、职责、行为、接口、用例、包、顺序、协作,以及状态2、 五类十种模型图 1). 用例图(use case): 从用户角度描述系统功能,并指各功能的操作者 2). 静态图: 包括类图,包图,对象图原创 2017-09-15 10:27:01 · 616 阅读 · 0 评论 -
cmd中javac 和 java的用法
对于初学者而言, cmd中的javac和java是一个很难得的问题。下面我来具体的说明一下。首先安装jdk和jre:下载jdk最新版,根据提示安装即可。然后配置java环境变量:JAVA_HOME:jdk安装路径(C:\Program Files\Java\jdk1.7.0_51) PATH : %JAVA_HOME%\bin;%JAVA_HOME%\jre\bin; CLASSPATH原创 2016-05-22 15:24:06 · 8389 阅读 · 0 评论 -
java基础(九)--------- java安全管理器_securityManager
java基础(九)——— java安全管理器_securityManager1、 java安全: 总的来说,java安全应该包括两个方面的内容: 一是java平台(即java运行环境)的安全性;二是java语言开发的应用程序的安全性。java平台的安全性由java本身语言的开发者维护,而第二个安全性则需要自己维护。一般可以通过安全管理器机制来完善安全性,安全管理器是安全的实施者,可对此类进行扩展。原创 2017-09-22 16:20:53 · 488 阅读 · 0 评论 -
Java基础(七)---- 反射 reflect
package com.test;import java.lang.reflect.Constructor;import java.lang.reflect.Field;import java.lang.reflect.Method;public class ReflectTest { public static void main(String[] args)throws Except原创 2017-09-06 13:35:06 · 235 阅读 · 0 评论 -
Java基础(六)----注释 annotation
共分为4个类 FirstAnno.classimport java.lang.annotation.*;@Documented @Inherited // 可以继承@Retention(RetentionPolicy.RUNTIME) // 保留策略@Target(ElementType.TYPE) // 修饰目标public @interface FirstAnno { St原创 2017-08-12 22:05:54 · 188 阅读 · 0 评论