java基础知识
Andy_96
学如逆水行舟,不进则退!
展开
-
java中的位运算
Java提供的位运算符有:左移( << )、右移( >> ) 、无符号右移( >>> ) 、位与( & ) 、位或( | )、位非( ~ )、位异或( ^ ),除了位非( ~ )是一元操作符外,其它的都是二元操作符。 1、左移( << ) 例:5 << 2 = 20 运算过程:首先java得整数类型int 32位,将5转化为32位的二进制形式 0000 0000 0000 0000 0000 0000 0000 0101 左移两位原创 2020-07-13 16:55:53 · 410 阅读 · 0 评论 -
java什么情况下产生死锁?如何定位修复?
java什么情况下产生死锁?如何定位修复? 死锁:死锁是一种特定的程序状态,在实体之间,由于循环依赖导致彼此一直处于等待之中,没有任何个体可以继续前进。 死锁产生条件: 互斥条件 请求与保持条件 不可剥夺条件 环路等待条件 定位死锁最常见的方式就是利用jstack工具获取线程栈,然后定位相互之间的依赖关系,进而找到死锁。 死锁实例: public class DeadLockSample ex...原创 2018-09-22 15:11:02 · 2151 阅读 · 0 评论 -
java并发包提供的并发工具类
java并发包提供哪些并发工具类? 我们通常所说的并发包就是java.util.concurrent及其子包,集中了java并发的各种工具类,主要包括以下几个方面: 提供了比synchronized更加高级的同步结构,包括CountDownLatch、CyclicBarrier、Semaphore等,可以实现更加丰富的多线程操作,比如利用Semaphore作为资源控制器,可以控制同时工作的线程数...原创 2018-09-24 16:54:17 · 534 阅读 · 0 评论 -
java常见面试题(4)
接口和抽象类的区别? 接口和抽象类是java面向对象的两个基础机制。 接口是对行为的抽象,它是抽象方法的集合,利用接口可以达到API定义和实现分离的目的。接口,不能实例化;不能包含任何非常量成员,任何field都是隐含着public static final的意义;没有非静态方法实现,也就是要么是抽象方法,要么是静态方法。 抽象类是不能实例化的类,用关键字abstract修饰,其目的是代码重...原创 2018-08-30 12:04:29 · 295 阅读 · 0 评论 -
java常见面试题(3)
synchronized和ReentrantLock有什么区别? synchronized是java内建的同步机制,所以也称其为Intrinsic Locking,它提供了互斥的语义和可见性,当一个线程已获取当前锁时,其它试图获取的线程只能等待或者阻塞在那里。在java 1.5以前,synchronized是仅有的同步手段,可以用来修饰方法,也可以指定在特定的代码块上,本质上synchroniz...原创 2018-08-29 17:10:57 · 228 阅读 · 0 评论 -
java常见面试题(2)
java反射机制,动态代理是基于什么原理? JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性;这种动态获取信息以及动态调用对象方法的功能称为java语言的反射机制。反射机制是java提供的一种基础功能,赋予程序在运行时自省的能力。通过反射我们可以直接操作类或者对象,比如获取某个对象的类定义,获取声明的属性和方法,调用...原创 2018-08-28 18:08:17 · 329 阅读 · 0 评论 -
Java常见面试题(1)
对java平台的理解,java是否是解释执行? java是面向对象的语言,最显著的两个特点是“一次书写,到处运行(Write once,run anywhere)”和垃圾收集(GC)。第一个特点使java非常容易的或跨平台能力,第二个特点java通过垃圾收集器回收分配内存,大部分情况下,程序员不需要操心内存的分配与回收。 JRE:java运行环境,包含了JVM和java类库。 JDK:JDK...原创 2018-08-28 15:02:34 · 225 阅读 · 0 评论 -
MySQL支持的事务隔离级别,以及悲观锁和乐观锁的原理
MySQL支持的事务隔离级别,以及悲观锁和乐观锁的原理 所谓隔离级别,就是在数据库事务中,为保证数据读写的正确性而提出的定义,它并不是MySQL专有的概念,而是源于ANSI/ISO制定的SQL-92标准。 MySQL InnoDB引擎,是基于MVCC(Multi-Versioning Concurrency Control)和锁的复合实现,按照隔离程度从低到高,MySQL失误隔离级别分为四个不...原创 2018-08-30 21:38:41 · 849 阅读 · 0 评论 -
java中三种常见内存溢出错误的处理方法
java中三种常见内存溢出错误的处理方法 jvm管理的内存大致包括三种不同类型的内存区域: Permanent Generation space(永久保存区域) Heap space(堆区域) Java Stacks(Java栈)。 其中永久保存区域主要存放Class(类)和Meta的信息,Class第一次被Load的时候被放入PermGen space区域,Class需要存储的内容主要...转载 2018-08-15 21:51:22 · 534 阅读 · 0 评论 -
数据库实现增删改查(基于Swing)
package main; import view1.MyLogin; public class Main { public static void main(String[] args) { MyLogin l = new MyLogin(); l.login(); } } package view1; import java.awt.GridLayout; import j...原创 2018-01-19 10:11:42 · 3083 阅读 · 2 评论 -
javase四舍五入的方法
// 方式一: double f = 3.1516; BigDecimal b = new BigDecimal(f); double f1 = b.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); // 方式二: new java.text.DecimalFormat("#.00").format(3.1415926); // ...翻译 2018-03-11 10:45:07 · 207 阅读 · 0 评论 -
流的概念
1. 什么是流 Java中的流是对字节序列的抽象,我们可以想象有一个水管,只不过现在流动在水管中的不再是水,而是字节序列。和水流一样,Java中的流也具有一个“流动的方向”,通常可以从中读入一个字节序列的对象被称为输入流;能够向其写入一个字节序列的对象被称为输出流。 2. 字节流 Java中的字节流处理的最基本单位为单个字节,它通常用来处理二进制数据。Java中最基本的...转载 2018-03-11 10:46:30 · 487 阅读 · 0 评论 -
10个经典的 Java main 方法面试题
1.不用main方法如何定义一个类? 不行,没有main方法我们不能运行Java类。 在Java 7之前,你可以通过使用静态初始化运行Java类。但是,从Java 7开始就行不通了。 2.main()方法需要的参数不是字符串数组? 不是的,main()方法的参数必须是字符串数组。 但是,在引进变参时,你可以将字符串类型的变参作为参数传递给main()方法。变参一定得是数组。 pack...转载 2018-03-11 10:54:22 · 175 阅读 · 0 评论