- 博客(11)
- 收藏
- 关注
原创 今日面试题总结————并发篇
请解释一下volatile关键字? volatile是Java中的轻量级的同步机制,总共有三个特性:可见性、非原子性、有序性(也叫禁止重排) 可见性:在Java内存模型中(JMM),多个线程访问主内存中的变量,将变量拷贝到自己的工作内存中。当然线程对变量的操作也算是对副本的操作,当其中一个线程改变了副本就会将改变后副本值更新到主内存中去,加了volatile后其他线程也能知道主内存中数据发生改变,从而自身副本也重新拷贝,反之不不知道已经改变。 非原子性:原子性就是不可分割,该做就一直做。在多线程环境下
2020-09-01 20:41:16
110
原创 JDBC
介绍:jdbc连接技术我们在日常开发中肯定是使用频繁,当然现存数据库连接技术中有很多种。如果每种都需要去花大量时间去学习且相差比较大的话就会造成知识混乱。所以对现存的数据库连接技术都是有一定规范,他们之间都是有联系和共同,学会了一个另外几个就自然而然的容易学懂。 接下来介绍的是Mysql的数据库连接技术: 大致步骤: 1、导入mysql数据库连接jar包(每个厂商把各自连接技术都封装在jar包中) 2、注册数据库驱动 3、获取数据库连接 4、创建sql 5、获取sql预处理对象 6、执...
2020-08-29 09:22:12
242
原创 String、StringBuilder、StringBuffer三者之间的关系与区别
String: String底层是:privatefinalcharvalue[];//由final修饰的字符数组 这里就注定String类型数据是不可修改的 jdk1.9时候吧char数组改成了byte数组privatefinalbyte value[]; StringBuilder和StringBuffer: 两者都继承自AbstractStringBuilder抽象类,下面看他的源码: AbstractStringBuilder.java abstract cla...
2020-08-21 15:59:42
272
原创 String类和常量池
1、String对象创建对象的两种方法 String str1="Health";//常量池中创建 Strinng str2=new String("Health");//堆中创建 System.out.println(str1==str2);//false 2、String类型的常量池比较特殊 *String a=“aaa”;//在常量池中创建 *String a=“aaa”; String b=a.intern(); a==b//这个b直接指向a中在常量池中创建的aaa 3、String..
2020-08-17 21:07:36
191
原创 JVM虚拟机各个内存作用及分布+常见面试题
进程的概念: 进程就是一次执行过程,是系统运行程序的基本单位,因此进程是动态的。系统运行一个程序是一个进程从创建、运行到消亡的过程。 进程的概念: 线程和进程相似,一进程在执行过程中可以产生多个线程、于进程不同的是同类的多个线程共享进程的堆和方法区资源,但每个线程有自己的程序计数器、虚拟机栈、本地方法栈,所以系统在产生一个线程,或者在多个线程中切换工作时会比在进程中轻松的多,所以线程也叫轻量级的进程。 记住一句话:java程序天生就是多线程程序main线程和多个其他线程,不然也不会弄那么多技术优化去
2020-08-17 20:32:56
311
原创 String头疼问题分析
1、"aaa"+new String("aaa");这里总共创建了几个对象呢? 2、new String("aaa")+new String("aaa");这里又创建了几个对象呢? 对于以上问题。 首先了解String类创建对象的两种方法 1、String str1="aa"; 2、String s1=new String("aa"); 可以看出两种创建方式在内存中的存放方式也是不一样的。 第一种直接是指向常量池中的数据、第二种是常量池中如果存在就将副本copy到堆中让栈中对象执.
2020-08-17 14:57:53
154
原创 集合学习-----Map
Map集合的概念: interface Map<key,value> 和前面学习的List和Set集合不同,他是有两个泛型一个key、一个value、有key映射value,并且key不允许重复。 key和value的关系就好比是学号和学生的关系。 map集合添加方法是put这个不能和前面的List和Set的搞混。 Map<String,String> map=new HashMap<>(); map.put("001","ww"); map.put(".
2020-08-17 11:06:54
113
原创 集合学习-----Set
面试题: ArrayList与Vector的区别?为什么要用ArrayList取代Vector呢? vector是线程同步的,可以由两个线程安全的访问一个vector对象,但是一个线程访问Vector的话代码在同步上操作耗费大量时间,而ArrayList不是同步的,所以在不需要保证线程安全时建议使用ArrayList. ArrayList的扩容机制: 以无参构造方法创建ArrayList时,实际上初始化赋值的是一个空数组。当真正对数组进行添加元素时,才真正分配容量。即向数组中添加元素时,数组扩容为.
2020-08-17 08:47:45
199
原创 集合学习总结----List:
1. 集合与数组存储数据概述: 集合、数组都是对多个数据进行存储操作的结构,简称Java容器。 说明:此时的存储,主要指的是内存层面的存储,不涉及到持久化的存储(.txt,.jpg,.avi,数据库中) 2. 数组存储的特点: > 一旦初始化以后,其长度就确定了。 > 数组一旦定义好,其元素的类型也就确定了。我们也就只能操作指定类型的数据了。 * 比如:String[] arr;int[] arr1;Object[] arr2; 3. 数组存储的弊端: * > 一旦...
2020-08-15 16:57:21
224
原创 spring学习 -----spring的概念及ioc xml配置
首先上一张目前流行框架ssm各个部分功能交互及职责图。 首先按下面流程了解spring 1、spring的概述 1.1spring是什么 *是分层的JavaSe/EE应用full-stack轻量级开源框架,以Ioc(反转控制)和Aop(面向切面编程)为内核,提供了展现层SpringMVC和持久层Spring Jdbc以及业务层事务管理等众多的企业级应用技术,还能整合开源世界众多著名的第三方框架和类库. 1.2spring的两大核心 IOC (控制...
2020-08-15 09:00:14
442
转载 10分钟搞懂隐层梯度 | Neural Networks
如果你有一定数学基础,了解一些编程语言,希望学习深度学习基础及进阶知识,这门课程一定不能错过。 本系列神经网络视频内容分为10章,每个章有若干视频和阅读材料清单,课程大纲是这样的: 第一章:前馈神经网络 第二章:训练神经网络 第三章:条件随机场 第四章:训练CRFs 第五章:受限玻尔兹曼机 第六章:自编码器 第七章:深度学习 第八章:稀疏编码 第九章:计算机视觉 第十
2018-01-28 19:24:25
502
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人