Java基础学习
且听风吟WB
这个作者很懒,什么都没留下…
展开
-
JVM学习之:运行时数据区和垃圾回收
Java虚拟机运行时数据区:器区堆二栈 程序计数器:当前线程所执行的字节码指令的行号指示器,字节码解释器工作时就是通 过改变这个计数器的值来选取下一条要执行的字节码指令。 * 占用内存较小* 线程私有* 唯一一 个在Java虚拟机规范中没有规定OutOfMemoryError情况的区域 方法区:用于存储已被虚拟机加载的类信息、常量、静态变量、即时编译...原创 2021-07-07 09:03:40 · 197 阅读 · 2 评论 -
tarjan算法非递归实现求强连通分量
#define MAXE 2500000#define MAXN 1000000struct Edge { uint32 to; uint32 w;};struct Node { uint32 l; uint32 r;};Edge neighborsTable[MAXE];Node G[MAXN];/*************************** tarjan ***************************************/.原创 2020-05-30 11:15:04 · 859 阅读 · 0 评论 -
Java命令运行class文件,提示找不到文件或无法加载类的解决办法
使用echo打印CLASSPATH:echo $CLASSPATH缺少当前路径,修改/etc/profileexport CLASSPATH=.:$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib然后source /etc/profile使之生效使用java命令即可运行.class文件...原创 2019-12-29 16:49:04 · 1277 阅读 · 0 评论 -
Java数据结构之——二叉树
二叉排序树或者是一棵空树,或者是具有下列性质的二叉树:(1)若左子树不空,则左子树上所有结点的值均小于它的根结点的值;(2)若右子树不空,则右子树上所有结点的值均大于它的根结点的值;(3)左、右子树也分别为二叉排序树;(4)没有键值相等的节点。三种遍历方式图示:先序遍历:中序遍历:后序遍历:代码实现://二叉排序树的实现class Node{...原创 2019-01-14 11:13:54 · 934 阅读 · 1 评论 -
Java数据结构之——链表
import java.lang.Object;import java.util.Dictionary;import java.util.Hashtable;class Node{ Node next = null; int data; public Node(int data){ this.data = data; }}public...原创 2019-01-10 11:13:40 · 179 阅读 · 0 评论 -
Dangling meta character '+' near index 0
使用String类的split方法时,报错:String[] c = a.split("+");java.util.regex.PatternSyntaxException:Dangling meta character '+' near index 0原因:+、*、|、\等符号在正则表达示中有相应的不同意义,所以在使用时要进行转义处理。修改为:String[] c = a.spl...原创 2019-02-22 09:55:08 · 658 阅读 · 0 评论 -
leetcode---根据字符出现频率排序
class Solution { public String frequencySort(String s) { Map<Integer,List<Character>> map = new HashMap<>(); //排序 char[] chars = s.toCharArray(); A...原创 2019-07-08 19:59:22 · 158 阅读 · 0 评论 -
如何理解T extends Comparable
<T extends Comparable<T>> 和 <T extends Comparable<? super T>> 有什么不同<T extends Comparable<T>>类型 T 必须实现 Comparable 接口,并且这个接口的类型是 T。只有这样,T 的实例之间才能相互比较大小。例如,在实际调用时若...原创 2019-07-09 15:16:46 · 713 阅读 · 0 评论 -
java多线程——生产者和消费者
使用同步方法来保证数据的一致性,使用wait() 和 notify() 、notifyAll()方法来解决重复操作。public class Test { public static void main(String[] args) { Message msg = new Message(); Producer producer = new Prod...原创 2019-07-13 10:05:05 · 144 阅读 · 0 评论 -
volatile关键字与sycronized区别
正常变量处理时候往往会经历如下步骤:1、获取变量的数据内容副本2、对变量副本进行计算3、将计算后的变量放回原来内存volatitle与同步的关系:volatile关键字主要修饰属性变量,sycronized在代码块和方法中使用; volatile避免内容拷贝,直接对内存进行操作,sycronized进行同步; volatile要与sycronized一起使用。...原创 2019-07-13 10:24:22 · 759 阅读 · 0 评论 -
初识java多线程
1. 线程的3种创建方式(1) 继承Thread类,重写run()方法public class FirstThread extends Thread { private int i ; public void run(){ for(i = 0; i < 100; i++){ System.out.println(getName...原创 2019-07-05 10:45:01 · 123 阅读 · 0 评论 -
ThreadLocal类使用
class Channel { //消息发送通道 private static final ThreadLocal<Message> THREAD_LOCAL = new ThreadLocal<>(); public Channel() {} public static void setMessage(Message m) { ...原创 2019-07-15 16:01:19 · 133 阅读 · 0 评论 -
对Java String不可变的理解
在实际Java编程中经常有这样的疑惑:java的String类为什么要设置成不可变类型?什么是不可变对象。不可变对象有什么好处?1、不可变对象,顾名思义就是创建后的对象不可以改变,典型的例子有java中的String类型。注意,是对象不可变,并非引用不可变。例如:定义并初始化一个String变量s ,s是引用类型变量,“hello”是String对象; Str...原创 2019-01-08 13:27:41 · 3416 阅读 · 7 评论 -
Java数据结构之——队列:通过链表和数组实现
//链表实现队列class Node<E>{ Node<E> next = null; E data; public Node(E data){ this.data = data; }} public class ListQueue<E>{ private Node<E>...原创 2019-01-13 12:19:54 · 314 阅读 · 0 评论 -
java面向对象(二):方法
方法:类或对象行为特征的抽象。(1)属于类(static修饰)或对象。(2)不能独立定义,不能独立执行。(3)三要素:调用者、方法名、形参列表 方法的参数传递机制:值传递方法的参数传递涉及到变量在内存的存取。引用类型的参数传递实质也是值传递,只不过这个值是引用变量的值——类似于C++指针,其值就是地址,传递的是对象的地址。 方法形参个数可变的方法在最后一个形参的...原创 2018-12-04 22:42:15 · 100 阅读 · 0 评论 -
java数据类型与运算符
Java语言是强类型语言:(1)所有变量必须先声明后使用;(2)变量类型与其值的类型必须匹配。文档注释:JDK提供的javadoc工具可以直接将源代码里的文档注释提取成一份系统的API文档。 命令:javadoc 选项 Java源文件|包 -d <directory>: 指定API文档的存放目录 -windowtitle <tex...原创 2018-12-03 20:56:36 · 301 阅读 · 0 评论 -
Java数组
Java数组数组是一种引用变量。数组定义及初始化: 定义:定义数组时不能指定数组的长度。 int [] arra; // 推荐使用 int arra[]; // 不推荐 初始化: int [] a; a = new int [] { 5, 6, 7, 8}; //静态初始化 a = new int[...原创 2018-12-03 21:35:17 · 97 阅读 · 0 评论 -
java.sql.SQLException: The server time zone value 的解决办法
Connection conn = DriverManager.getConnection( "jdbc:mysql://127.0.0.1:3306/DBtest", "root", "123456");上面的写法会报错,我用的是8.0.13,在新版的数据库使用的时区与本地时区有区别,标准时区使用的是Unix元年的时间为起始点到当前时间中间所做的动作。国际标准失去与...原创 2018-12-10 22:03:00 · 395 阅读 · 1 评论 -
IDEA文件编码格式报错:Error:(1, 1) java: 非法字符: '\ufeff'
在IDEA中,File->Settings->Editor->FileEncodings: 下图中添加的两个文件就是原来报错的文件原创 2018-12-17 10:19:44 · 421 阅读 · 0 评论 -
Java中用反射的方法获取类的类型
private Class<T> clazz; public BaseDao(){ //初始化clazz属性 Type superType = this.getClass().getGenericSuperclass();//getGenericSuperclass:拿到调用者的父类类型 if(superType in...原创 2018-12-17 20:42:35 · 787 阅读 · 0 评论 -
Java中为什么需要main方法?
public static void main( String[] args)为Java程序的入口方法,JVM在运行程序时,先找main()方法。public表明任何类或对象都可以调用此方法,static表明main()方法时一个静态方法,只需要类加载后就可以通过类名.main()直接访问。字符串数组参数args为开发人员在命令行状态下与程序交互提供了一种手段,简言之,就是用来从命令行接受用户参数...原创 2018-12-18 09:10:18 · 2160 阅读 · 1 评论 -
通过servlet将数据写入到html页面或jsp中
三种方式:1.request的getAttribute()/setAttribute()方法在servlet和jsp页面间共享数据。request.setAttribute("key", value);//value是一个object2.利用ServletContext这个web全局上下文来共享数据getServletContext.setAttribute("key", va...原创 2019-01-04 20:09:44 · 13461 阅读 · 1 评论 -
Java数据结构之——栈:用数组实现
/*** This is an abstract data type interface for the stack. * This interface includes methods: * {@code pop},{@code push},{@code peek},{@code isEmpty},{@code size}.** @excetpion EmptyCollection...原创 2019-01-10 12:22:03 · 174 阅读 · 0 评论 -
Java数据结构之——栈:用链表实现
class Node<E>{ E data; Node<E> next = null; public Node(E data){ this.data = data; }}public class ListStack<E>{ Node<E> top = null; public b...原创 2019-01-11 14:32:34 · 558 阅读 · 0 评论 -
Java web获取根据url地址访问相应的方法
@Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { String mn = req.getServletPath(); mn = mn.substring(1); ...原创 2019-01-02 22:03:53 · 1834 阅读 · 0 评论 -
Java面向对象(一):static、this、构造器
static关键字 static关键字用来修饰方法、成员变量等,用来区分成员是属于类本身还是属于对象。static成员不能访问非static成员,即类成员不能访问对象(实例)的成员。虽然Java允许使用对象来调用static成员变量和方法,但是在实际编程中,应该用类去调用static成员,而避免通过对象去调用。构造器: 类创建对象的根本途径。返回值总是当前类,无须定义返回值类型,也...原创 2018-12-04 21:55:45 · 229 阅读 · 0 评论