Java 编程知识
Java 编程知识
蜘蛛侠不会飞
关注公众号【不至于编程】,回复【CS】获取30本豆瓣高分计算机就书籍,包括操作系统、计算机网络、数据结构与算法等
展开
-
java面向对象9经典程序
转载自:http://blog.csdn.net/u010793590/article/details/288989231 Hello world例子[java]view plaincopypackageExample;//定义自己的包名publicclassExample1转载 2017-12-17 22:27:54 · 1622 阅读 · 1 评论 -
Java性能优化系列之-深入理解Java垃圾回收机制
一、垃圾回收的意义Java语言中一个显著的特点就是引入了垃圾回收机制,使c++程序员最头疼的内存管理的问题迎刃而解,它使得Java程序员在编写程序的时候不再需要考虑内存管理。由于有个垃圾回收机制,Java中的对象不再有“作用域”的概念,只有对象的引用才有“作用域”。垃圾回收可以有效的防止内存泄露,有效的使用空闲的内存。上一篇文章: 说明了堆 (包括Java堆 和 方法区)是 垃圾回收的主要对象,特别是Java堆。Java 垃圾回收机制要考虑的问题很复杂,本文涉及三个核心问题,包括:..原创 2020-09-22 15:18:43 · 248 阅读 · 0 评论 -
Java性能优化系列之-JIT即时编译器与Java内存管理机制
一、JIT编译器1. JIT编译器JIT(just in time)即时编译器。其存在的目的:为了提高热点代码的执行效率,在运行时,虚拟机将会把这些代码编译成与本地平台相关的机器码,并进行各种层次的优化,完成这个任务的编译器称为即时编译器(Just In Time Compiler),简称 JIT 编译器。2. 即时编译器和Java虚拟机的关系即时编译器并不是虚拟机必需的部分,Java 虚拟机规范并没有规定 Java 虚拟机内必须要有即时编译器的存在,更没有限定或指导即时编译器应该如何去实现原创 2020-09-22 15:18:00 · 1015 阅读 · 0 评论 -
Java并发(3)Future异步调用模式
1. CAS无锁机制1)乐观锁和悲观锁乐观锁总是认为不会产生并发问题,每次去取数据的时候总认为不会有其他线程对数据进行修改,因此不会上锁,但是在更新时会判断其他线程在这之前有没有对数据进行修改,一般会使用版本号机制或CAS操作实现。version方式:一般是在数据表中加上一个数据版本号version字段,表示数据被修改的次数,当数据被修改时,version值会加1。当线程A要更新数据值时,在读取数据的同时也会读取version值,在提交更新时,若刚才读取到的version值为当前数据库中的v原创 2020-09-14 09:45:53 · 615 阅读 · 0 评论 -
Java并发(2)同步控制与线程池管理
一、同步控制1. synchronized 功能扩展-重入锁需要使用的类:import java.util.concurrent.locks.ReentrantLock;例子:使用两个线程更新 iimport java.util.concurrent.locks.ReentrantLock;class ReThread implements Runnable{ public static ReentrantLock lock = new ReentrantLock()原创 2020-09-14 10:57:18 · 336 阅读 · 0 评论 -
Java 8 新特性之Lambda表达式和Stream流
1. 为什么需要函数式编程在很长的一段时间里,Java一直是面向对象的语言,一切皆对象,如果想要调用一个函数,函数必须属于一个类或对象,然后在使用类或对象进行调用。但是在其它的编程语言中,如js,c++,我们可以直接写一个函数,然后在需要的时候进行调用,即可以说是面向对象编程,也可以说是函数式编程。从功能上来看,面向对象编程没什么不好的地方,但是从开发的角度来看,面向对象编程会多写很多可能是重复的代码行。比如创建一个Runnable的匿名类的时候: Runnable runnab原创 2020-09-14 18:11:14 · 1012 阅读 · 0 评论 -
位运算的巧妙使用
基本的位操作符有与、或、异或、取反、左移、右移这6种:位运算示例操作位运算 功能 示例 x >> 1 去掉最后一位 101101->10110 x << 1 在最后加一个0 101101->1011010 x << 1 | 1 在最后加一个1 101101->1011011 x | 1 把最后一位变成1 101100->101101 x & -2原创 2020-08-17 15:02:34 · 678 阅读 · 0 评论 -
Java常见工具类总结
1. 基础知识:Java中 == 和 equals 的区别 1.1 基本类型数据: byte,short,char,int,long,float,double,boolean 他们之间的比较应该使用(==),比较的是他们的值。equals 比较的是引用是否相同 String s1 = "abc"; String s2 = "abc"; String s3 = new String("abc"); Syst...原创 2020-06-18 18:44:40 · 1484 阅读 · 0 评论 -
java并发(1)线程创建和线程的一些知识
告别 2019, 迎接 2020,元旦快乐。2019 真是不平凡的一年,困难伤病,接踵而至,唏嘘呼哉,过眼云烟。2020,鼎力前行,多多阅读。多线程一般用于的场景:1. GUI 应用程序2. 耗时的I/O 处理3. 多个客户端1.创建线程的方法1.1. 通过继承Thread 类,实现run方法class MyThread extends Thread...原创 2020-01-01 18:34:01 · 177 阅读 · 0 评论 -
java中break,continue,return使用方法
break , continue 和 return 的使用方法:1、break a. 跳出当前循环; b. 但是如果是嵌套循环,则只能跳出当前的这一层循环,只有逐层break才能跳出所有循环;for (int i = 0; i < 10; i++) { if (i == 6) { break; // 在执行i==...转载 2018-03-05 14:11:31 · 3558 阅读 · 0 评论 -
java基础-堆和栈的区别
在函数中定义的一些基本类型的变量和对象的引用变量都在函数的栈内存中分配。 当在一段代码块定义一个变量时,Java就在栈中为这个变量分配内存空间,当超过变量的作用域后,Java会自动释放掉为该变量所分配的内存空间,该内存空间可以立即被另作他用。 堆内存用来存放由new创建的对象和数组。 在堆中分配的内存,由Java虚拟机的自动垃圾回收器来管理。 在堆中产生了一...原创 2018-03-08 19:52:41 · 213 阅读 · 0 评论 -
java中的BigInteger类的使用
本来在刷九度的数学类型题,有进制转换和大数运算,故而用到了java BigInteger类,使用了之后才发现真是业界良心!比C++求解进制转换题不知道方便到哪里去了!故作此文。简介首先,介绍一下BigIntger类。BigInteger类是java为了处理大数字二专门制作的类,可以处理很大的数字(理论上无限大),并且可以实现大数字的类似于int所有数学运算。对算法题来说,再也不怕出现超出int范围...转载 2018-03-06 19:37:44 · 1199 阅读 · 0 评论 -
Java泛型通配符“?”的使用【非常详细】
转载自:http://blog.csdn.net/LonelyRoamer/article/details/7927212通配符有三种:1、无限定通配符 形式2、上边界限定通配符 形式 //用Number举例3、下边界限定通配符 形式 //用Number举例1、泛型中的?通配符如果定义一个方法,该原创 2017-12-20 22:13:27 · 17385 阅读 · 0 评论 -
Java 的接口理解【详细解释】
转载自:http://blog.csdn.net/liujun13579/article/details/7736116/一、定义Java接口(Interface),是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为(功能)。接口定义的一般形式为:原创 2017-12-13 17:00:10 · 3129 阅读 · 1 评论 -
Java 抽象类 使用方法【非常详细】
转载自:http://blog.csdn.net/wei_zhi/article/details/52736350一、抽象类的基本概念普通类是一个完善的功能类,可以直接产生实例化对象,并且在普通类中可以包含有构造方法、普通方法、static方法、常量和变量等内容。而抽象类是指在普通类的结构里面增加抽象方法的组成部分。那么什么叫抽象方法呢?在所有的普通方法上面都会原创 2017-12-14 15:16:57 · 9021 阅读 · 0 评论 -
Java 对象 多态性的使用【非常详细】
转载自:http://blog.csdn.net/aotumemedazhao1996/article/details/52818762java接口可以实例化吗?接口不可以实例化。但是接口对象可以指向它的实现类对象。接口可以看做特殊的抽象类,只是所有的方法都是抽象方法(没有实现的方法),接口的方法都是默认public abstract的,所以不能被实例化。比如:List Set Map都是接口使用...原创 2017-12-14 17:09:22 · 1581 阅读 · 1 评论 -
泛型方法在普通类中的使用
转载自:http://blog.csdn.net/titilover/article/details/6859055一. 为什么要使用泛型程序设计 泛型程序设计意味着编写的代码可以被很多不同类型的对象所重用。例如,我们不希望为聚集String和File对象分别设计不同的类。实际上根本不需要那么做,因为一个ArrayList类可以聚集任何类型的对象。这是一个泛型程序设计的实例。在Ja...转载 2017-12-17 17:40:03 · 6386 阅读 · 0 评论 -
数据库Connection接口的具体实现方法
连接数据库://1.启动MySQL,可连接数据库Connection connect = DriverManager.getConnection( "jdbc:mysql://localhost:3306/user","root","root"); //连接URL为 jdbc:mysql//服务器地址/数据库名 ,后面的2个参数分别是登陆用户名和密...原创 2018-01-02 20:53:04 · 7869 阅读 · 0 评论