高效读写的队列:深度剖析ConcurrentLinkedQueue 队列、链表之类的数据结构及其常用。Java中,ArrayList和Vector都是使用数组作为其内部实现。两者最大的不同在于:Vector是线程安全的,而ArrayList不是。此外LinkedList使用链表的数据结构实现了List,但并不是线程安全的,就像之前包装HashMap,这里我们可以使用Collections.synchronizedList()来包装任意List。此时,生成的List对
装配Bean 任何一个成功的应用都是由为了实现某一目标任务而相互协作的组件构成的。这些组件必须彼此了解并相互协作来完成工作。 而创建应用对象之间关联关系的传统方法(通过构造器或者查找)通常会导致结构复杂的代码,这些代码很难复用,也很难进行单元测试。最好的情况是,这些对象所做的超出了它应该做的;最坏的情况是,这些对象之间彼此之间高度耦合,难以复用和测试。 在Spring中,对象无需自己负责查找或创建与其相关
Spring之旅 Spring 最根本的使命:简化Java开发为了降低JAVA开发的复杂性,Spring采取了以下4种关键策略:基于POJO的轻量级和最小侵入式编程通过依赖注入和面向接口实现松耦合基于切面和惯例进行声明式编程通过切面和模板减少样板式代码 几乎Spring所做的所有的任何事情都可以追溯到上述的一条或多条策略。 Spring竭力避免因自身的API而弄乱你的应用代码。依赖注入在项目中使用了依
[编程题] 算法基础-字符移位 小Q最近遇到了一个难题:把一个字符串的大写字母放到字符串的后面,各个字符的相对位置不变,且不能申请额外的空间。 你能帮帮小Q吗?输入描述:输入数据有多组,每组包含一个字符串s,且保证:1<=s.length<=1000.输出描述:对于每组数据,输出移位后的字符串。输入例子: AkleBiCeilD输出例子: kleieilABCDimport java.util.Scanner;public
Java 7 数值字面量的改进 字面量(literal) 指的是在源代码中直接表示一个固定的值。比如基本类型字面量:包括整数、浮点数、字符串和布尔值等。支持的数字字面量表示十进制:默认的八进制:整数之前加数字0来表示十六进制:整数之前加“0x”或“0X”二进制(新加的):整数之前加“0b”或“0B”在数值字面量中使用下划线在java 7中,数值字面量,不管是整数还是浮点数,都允许在数字之间插入任意多个下划线。这些
Java 7 switch支持String类型的原理和关于switch一些细节 switchswitch中可以有null吗?在switch语句中,表达式的值不能是null,否则会在运行时抛出NullPointerException。在case子句中也不能使用null,否则会出现编译错误。switch支持的类型有?Java 7 中加入了对String类型的支持。所以支持的有:char、byte、short、int 和 Character、Byte、Short、Integer
mac上安装mysql 以及root密码忘记或权限错误的解决办法 出现错误: ERROR 1045 (28000): Access denied for user ‘root’@’localhost’ (using password: NO) 就是没有权限访问,忘记密码了,需要修改密码:解决步骤: 1.苹果->系统偏好设置->最下边点mysql 在弹出页面中 关闭mysql服务 2.进入终端 输入: cd /usr/local/mysql/bin/
韩顺平 Java 第52讲 面试题 java试题评讲下列哪些是java语言的关键字? A. sizeof B. abstract C. NULL D. Native 答案:选择B。第一个java语言编辑器是在(1996)年推出。java的保留字和关键字? Java 关键字列表 (依字母排序 共51组): abstract, assert,boolean, break, byte, case, catch, c
scp免密码传输 背景 scp时候需要输入密码有时候挺麻烦,尤其是密码比较难记,我们可以通过建立两server之间的信任关系,从此就不用输入密码了。 有时候需要将命令行植入到程序中的时候,也需要免密码,这样,程序就可以直接执行得到结果了。效果在a命令行上执行操作,可以复制文件到b,或者把b上的文件复制来。这是单向过程,如果在b上也想免密码登录a,这时候需要在b上做同样的操作。步骤在a命令行,roo
韩顺平 java io编程 文件流文件在程序中是以流的形式来操作的。 - 内存 –输出流–> 文件 - 内存 <–输入流– 文件 流:数据在数据源(文件)和程序(内存)之间经历的路径。 注意:以内存为参照物 输入流:数据从数据源(文件)到程序(内存)的路径 输出流:数据从程序(内存)到数据源(文件)的路径文件流分类java流分为两种流 1. 字节流:可以用于读写二进制文件及任何类型文件(以byte单位读取) 2
韩顺平 java 第41讲 - 至于阻塞后,多个线程谁先执行?这个就是看优先级了,假如优先级一样的话,就看先到先执行,这些都是操作系统控制的。 - synchronized后面括号中的对象可以是任意对象。
韩顺平 java 第40讲 线程同步 线程深入理解线程对象只能启动一个线程。不管是继承Thread,还是通过实现Runnable接口创建线程,它们的一个对象只能启动(即start())一次,否则就会有异常抛出。不能通过此方式实现多个线程跑起来。两种创建线程方法的区别? 问题:模拟一个机票售票系统,有三个售票点,在一天内卖出2000张票,(一共卖出2000张)。 这里要考虑,多线程并发会带来线程安全问题。本题中,有可能会出现同一张
韩顺平 java 第39讲 线程 多个线程package com.chen;public class MyClass { public static void main(String[] args) { Cat cat = new Cat(); Dog dog = new Dog(); //创建一个Thread对象 Thread t1 = new Thread(
韩顺平 java 第38讲 线程 进程、线程的基本概念进程是指运行中的应用程序,每个进程都有自己独立的地址空间(内存空间)。比如用户点击ie浏览器,就启动了一个进程,操作系统就会为该进程分配独立的地址空间,当用户再次点击ie浏览器图标,就又启动了一个进程,操作系统将为新的进程分配新的独立的地址空间。线程是进程中的一个实体,是被系统独立调度和分派的基本单位,线程自己不拥有系统资源,只拥有一点在运行中必不可少的资源,但它可与同属一个进程
韩顺平 java 第37讲 动起来的坦克 让坦克移动起来注意,创建敌人坦克的时候,需要注意用什么存储?? 数组VS集合? 首先,敌人的坦克会爆炸,用数组的时候不好控制敌人的坦克数量什么的,所以用集合。但是集合中要用ArrayList还是Vector? 我们知道后者是线程安全的,坦克后期肯定是多线程的,所以用Vector。Draw.javapackage com.chen;import java.awt.*;import java.a
韩顺平 java 第36讲 事件监听 事件源事件源是一个产生或者触发事件的对象,比如前面的按钮或者按键,当这个事件源对象的某些状态以某种方式发生变化时,就会产生某种类型的事件,一个事件源可能会产生多个不同类型的事件,如果某个组件(对象)希望得到事件源的事件,就需要在这个事件源上注册。事件事件就是承载事件源状态改变时的信息对象。或者说事件是事件源向事件监听器传输事件源状态信息的载体,在用户与GUI组件进行交互时就会生成事件,比如当鼠标在面
韩顺平 java 第35讲 事件处理机制 点击按钮控制背景颜色变化package chen.com;import java.awt.*;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.*;//这个类NotePad就是监听者public class Notepad extends JFrame imple
韩顺平 java 第33讲 绘图技术 绘图原理Component类提供了两个和绘图有关的最重要的方法: 1. paint(Graphics g)绘制组件的外观 2. repaint()刷新组件的外观 3. 当组件第一次在屏幕显示的时候,程序会自动的调用paint()方法来绘制组件 4. 在以下三种情况下,paint()将会被调用:窗口的大小发生变化,窗口最小化和最大化,repaint函数被调用 package com.chen
韩顺平java 第32讲 swing编程实战 拆分窗格 JSplitPane和多行文本框组件JTextAreaJSplitPane属于容器类组件。package chen.com;import java.awt.*;import javax.swing.*;public class MyClass extends JFrame { JSplitPane jsp; JList jList; JLabel jl1;
韩顺平 java 第31讲 常用组件 面板组件 JPanel为什么有JPanel?在图形用户界面编程中,如果只是普通的组件布局,可以用前面的三种布局管理器就可以解决,但是在比较复杂的布局要求时,就需要使用布局管理器的组合使用。怎么用JPanel?JPanel是面板组件,非顶层容器。 一个界面只能有一个JFrame窗体组件,但是可以有多个JPanel面板组件,而JPanel上也可以使用FlowLayout、BorderLayout、Gr