JavaSE
java基础技术
未来窥视者
曾就职于卫宁健康科技集团、碧桂园教育集团、赛意信息。
行业:K12教育、医疗信息、企业管理
展开
-
java.lang.NullPointerException的…
顾名思义 空指针异常 肯定是有一些变量或者需要的值为空了,导致的错误。1 建议使用debug模式,首先查看出错的哪一行代码。分析一下 这一行哪一些值为空了。2 如果 变量值不确定,试着使用 try catch 进行捕获。3 如果是一些资源id的空指针异常,确认无误,clean一下 让资源id重新生成。这次我的错误就是出现在第三类情况中了,我忘了给TextView配置id。原创 2017-03-08 13:15:13 · 230 阅读 · 0 评论 -
java基础理论学习笔记(3)——ArrayList等集合类并发安全问题
ArrayList不是线程安全类,在多线程同时写的情况下,会抛出java.util.ConcurrentModificationException异常。如下代码,开启30个线程同时对ArrayList进行写操作,会报并发异常错。private static void listNotSafe() { List<String> list=new ArrayList<>(); for (int i = 1; i <= 30; i++) { new原创 2020-06-27 15:09:02 · 296 阅读 · 0 评论 -
java基础理论学习笔记(2)——CAS
CAS是指Compare And Swap,比较并交换,是一种很重要的同步思想。如果主内存的值跟期望值一样,那么就进行修改,否则一直重试,直到一致为止。CAS涉及内容如以下结构:CAS底层:他的核心类是UNSAFE类,这个类是rt.jar中的com.misc.unsafe,里面通过native实现对底层系统的访问,所以是通过内存偏移量对操作系统直接读取值,获得主内存当前的值,用以比较。而且他拿到值,比较,如果一致就交换,这个过程是原子性的,因为他是操作系统的原指令。不会中间被其他线程插入。原创 2020-06-27 14:37:56 · 358 阅读 · 1 评论 -
java基础理论学习笔记(1)——volatile
首先借用阳哥的脑图:1、轻量级:是相对jvm的三个特性,volatile只实现了可见性、有序性来说的。2、可见性:如下图:线程工作时,会从堆中(主内存)里拷贝变量age=25到各自栈中(工作内存),当任一线程如t1修改值为37,回写到主内存时,需要保障其他所有线程都获知主内存的变量age已更新为37,这就是可见性,即对主内存的修改,得相互知道内存模型JMM:分为堆、方法区、栈、寄存器代码测试可见性,可利用main线程以及new一个子线程来印证,若未用volatile关原创 2020-06-27 14:18:36 · 253 阅读 · 0 评论 -
java基础理论学习笔记——双亲委派(父委派)
首先借助网上的两张图:第一张图我们先了解下他的架构,然后第二张图,我们通过路径,就能更实际的体会到他们在实际工作中的作用了。1、可以看到系统自带的三个加载器,前面两层的都是jdk安装完成后自带的路径。也就是一些最基本的类其实jdk就已经写好了,就是那些基本的类库,不需要用户自己去改,也防止被改。2、再来看第三层的$CLASSPATH,这不是我们web项目开发中最常见的了吗?项目搭建的时候,需要配置环境,我们项目中依赖的jar包就得先在classpath下build出来。3、最深层的原创 2020-06-22 11:23:51 · 249 阅读 · 0 评论 -
在本机设置域名跟IP对应关系
对于一些域名有内网、外网之分的时候,需要对特定环境的ip进行对应设置。这时只需要修改host文件就行了:# For example:## 102.54.94.97 rhino.acme.com # source server# 38.25.63.10 x.acme.com # x client host在这里添上ip...原创 2018-07-01 12:38:06 · 1649 阅读 · 0 评论 -
Java标识符小陷阱
null 和 NULL ;NULL是可以作为标识符的,Java区分大小写,null是关键字。Java标识符命名规范:1)只能包含字母a_z A_Z ,0-9,下划线和美元符号$; ($Apple是合法的)2)首字母不能为数3)关键字保留字不能作为标识符原创 2017-09-17 11:25:24 · 290 阅读 · 0 评论 -
cannot connect to vm :could not reserve enough space for object heap
今天早上打开eclipse的调试运行,出现这个错误。提示很明显,无法连上vm,内存空间不足思考了一下最近电脑改动的地方,想起来是电脑的虚拟内存分配进行了调整,把虚拟内存的空间调整一下就ok了原创 2017-07-26 09:33:44 · 729 阅读 · 0 评论 -
java数据类型与sql数据类型的对照,如数据库中的char类型对应java中的数据类型为?
java中 的char、java.lang.Character对应sql数据库中的CHAR(1)类型,应该把string换成Character;如果是char里面是保存的Y/N这种,则可以用boolean。原创 2017-06-16 09:47:03 · 9674 阅读 · 0 评论 -
Java中对日期进行增加天数、月数、年
有时我们需要对时间数据进行处理,比如日期增加一天,增加一个月,下面是代码:import java.util.Date;int Day = 1;Calendar calendar = new GregorianCalendar(); // 定义calendar对象calendar.setTime(new Date()); // 把当前系统时间赋值给calendarcalenda原创 2017-03-15 21:32:49 · 5885 阅读 · 0 评论 -
java中分割字符串成数组时,小圆点不能直接进行分割
问题描述:String preStr = "a.b.c"; // 这里要把该字符串按小圆点进行分割,成"a","b","c"String[] string = preStr.split("."); // 直接这样写是不行的正确的写法是,对小圆点进行转义String[] string = preStr.split("\\.");原创 2017-03-14 14:53:51 · 3373 阅读 · 3 评论 -
java基础--jdk1.5特性,命名规范,…
eclipse快捷导入多个包:ctrl+shift+o本机的eclipse的jdk版本为1.5在compiler中可以更改静态导入:作用:导入类中的静态成员语法:import static java.lang.System.out;例子:未使用->System.out.println("a"); 使用->out.println("a");缺点:很难记得方法名字,没法使用eclips原创 2017-03-08 13:15:51 · 298 阅读 · 0 评论 -
java基础--内存分析
java中的引用实际上就是c、c++中的指针java中有八种基本类型:byte、short、int、long、float、double、boolean、char对于基本类型,在成员变量中,如果没有对其进行初始化,java会默认对其进行初始化,一般都是等于0其他的都是引用类型。引用类型则默认初始化为null。对于基本类型,在java内存中只有一块内存,stack。对于引用类型,若对其只是定原创 2017-03-08 13:15:54 · 367 阅读 · 0 评论 -
java从控制台获得输入
Trandition:用新特性包含的:java.util.Scanner原创 2017-03-08 13:15:57 · 444 阅读 · 0 评论 -
单例模式、软件安装
单例模式私有的最终常量,私有的构造方法,公共的获取方法,都是静态的,不需要new,已经在内存分配。静态的私有的最终常量(获取唯一的工厂实例只执行初始化一次),初始化时调用私有的创建方法静态的私有的创建方法(初始化工厂对象)被外部访问的公共的静态方法(让外部访问、直接获取工厂实例)软件安装:jdk安装,选择安装jdk,然后安装jre,配置环境变量,测试在dos中,输入Java -ve原创 2017-03-08 13:16:08 · 201 阅读 · 0 评论 -
Java中如何判断一个集合中的一个元素不在另一个集合中?把不存在的元素移除
判断一个元素在集合中很容易,只需要遍历这个集合,然后与每个值进行比较,如果有相等的,那么就存在在集合中,然后反过来,就是不存在集合中的,找到它好像挺容易,但是写起代码来好像有点绕,那么,现在就把它写出来:List aList = new ArrayList();List bList = new ArrayList();for(int i = 0 ; iaList.add(i); /原创 2017-03-20 23:41:30 · 18889 阅读 · 10 评论 -
java编译后的文件出现xx$1.class的原因
java编译后的文件名字带有$接数字的就是匿名内部类的编译结果,接名字的就是内部类的编译结果例如:TestFrame$1.class是匿名内部类的编译结果,TestFrame$MyJob.class则是内部类MyJob编译后得到的.使用内部类可以隐藏一些实现的细节, 等等, 还有其他一些好处. 使用匿名类的时候, 要注意代码的可读性原创 2017-03-29 09:10:48 · 23157 阅读 · 3 评论 -
java字符串的操作:去除字符、替换字符、多个字符分隔字符串
// 去除空格,换行,制表符public String replaceBlank(String str) {String dest = "";if (str!=null) {Pattern p = Pattern.compile("\\s*|\t|\r|\n"); // 去除多个空格,去除制表符,回车,换行Matcher m = p.matcher(str);dest =原创 2017-03-29 09:19:51 · 5785 阅读 · 0 评论 -
java基础做题总结(异常类,构造器)
1、java异常类:Throwable下分为Error和Exception类,Exception类下分为RuntimeException和IoException类所以说,异常的继承结构:基类为Throwable,其中Error和Exception继承Throwable,IOException和RuntimeException继承Exception;非RuntimeException原创 2016-11-19 13:15:22 · 797 阅读 · 0 评论