- 博客(76)
- 资源 (1)
- 收藏
- 关注
原创 高效读写的队列:深度剖析ConcurrentLinkedQueue
队列、链表之类的数据结构及其常用。Java中,ArrayList和Vector都是使用数组作为其内部实现。两者最大的不同在于:Vector是线程安全的,而ArrayList不是。此外LinkedList使用链表的数据结构实现了List,但并不是线程安全的,就像之前包装HashMap,这里我们可以使用Collections.synchronizedList()来包装任意List。此时,生成的List对
2016-06-28 15:52:46
11468
4
原创 装配Bean
任何一个成功的应用都是由为了实现某一目标任务而相互协作的组件构成的。这些组件必须彼此了解并相互协作来完成工作。 而创建应用对象之间关联关系的传统方法(通过构造器或者查找)通常会导致结构复杂的代码,这些代码很难复用,也很难进行单元测试。最好的情况是,这些对象所做的超出了它应该做的;最坏的情况是,这些对象之间彼此之间高度耦合,难以复用和测试。 在Spring中,对象无需自己负责查找或创建与其相关
2016-06-18 10:53:10
550
原创 Spring之旅
Spring 最根本的使命:简化Java开发为了降低JAVA开发的复杂性,Spring采取了以下4种关键策略:基于POJO的轻量级和最小侵入式编程通过依赖注入和面向接口实现松耦合基于切面和惯例进行声明式编程通过切面和模板减少样板式代码 几乎Spring所做的所有的任何事情都可以追溯到上述的一条或多条策略。 Spring竭力避免因自身的API而弄乱你的应用代码。依赖注入在项目中使用了依
2016-06-17 22:06:01
447
原创 [编程题] 算法基础-字符移位
小Q最近遇到了一个难题:把一个字符串的大写字母放到字符串的后面,各个字符的相对位置不变,且不能申请额外的空间。 你能帮帮小Q吗?输入描述:输入数据有多组,每组包含一个字符串s,且保证:1<=s.length<=1000.输出描述:对于每组数据,输出移位后的字符串。输入例子: AkleBiCeilD输出例子: kleieilABCDimport java.util.Scanner;public
2016-06-16 11:01:39
1220
原创 Java 7 数值字面量的改进
字面量(literal) 指的是在源代码中直接表示一个固定的值。比如基本类型字面量:包括整数、浮点数、字符串和布尔值等。支持的数字字面量表示十进制:默认的八进制:整数之前加数字0来表示十六进制:整数之前加“0x”或“0X”二进制(新加的):整数之前加“0b”或“0B”在数值字面量中使用下划线在java 7中,数值字面量,不管是整数还是浮点数,都允许在数字之间插入任意多个下划线。这些
2016-06-13 15:44:16
2153
原创 Java 7 switch支持String类型的原理和关于switch一些细节
switchswitch中可以有null吗?在switch语句中,表达式的值不能是null,否则会在运行时抛出NullPointerException。在case子句中也不能使用null,否则会出现编译错误。switch支持的类型有?Java 7 中加入了对String类型的支持。所以支持的有:char、byte、short、int 和 Character、Byte、Short、Integer
2016-06-13 15:26:16
10778
原创 mac上安装mysql 以及root密码忘记或权限错误的解决办法
出现错误: ERROR 1045 (28000): Access denied for user ‘root’@’localhost’ (using password: NO) 就是没有权限访问,忘记密码了,需要修改密码:解决步骤: 1.苹果->系统偏好设置->最下边点mysql 在弹出页面中 关闭mysql服务 2.进入终端 输入: cd /usr/local/mysql/bin/
2016-04-07 11:18:59
1480
原创 韩顺平 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
2015-11-16 21:17:07
695
原创 scp免密码传输
背景 scp时候需要输入密码有时候挺麻烦,尤其是密码比较难记,我们可以通过建立两server之间的信任关系,从此就不用输入密码了。 有时候需要将命令行植入到程序中的时候,也需要免密码,这样,程序就可以直接执行得到结果了。效果在a命令行上执行操作,可以复制文件到b,或者把b上的文件复制来。这是单向过程,如果在b上也想免密码登录a,这时候需要在b上做同样的操作。步骤在a命令行,roo
2015-10-27 15:52:46
4153
原创 韩顺平 java io编程
文件流文件在程序中是以流的形式来操作的。 - 内存 –输出流–> 文件 - 内存 <–输入流– 文件 流:数据在数据源(文件)和程序(内存)之间经历的路径。 注意:以内存为参照物 输入流:数据从数据源(文件)到程序(内存)的路径 输出流:数据从程序(内存)到数据源(文件)的路径文件流分类java流分为两种流 1. 字节流:可以用于读写二进制文件及任何类型文件(以byte单位读取) 2
2015-10-14 17:38:01
652
原创 韩顺平 java 第41讲
- 至于阻塞后,多个线程谁先执行?这个就是看优先级了,假如优先级一样的话,就看先到先执行,这些都是操作系统控制的。 - synchronized后面括号中的对象可以是任意对象。
2015-10-13 21:55:09
412
原创 韩顺平 java 第40讲 线程同步
线程深入理解线程对象只能启动一个线程。不管是继承Thread,还是通过实现Runnable接口创建线程,它们的一个对象只能启动(即start())一次,否则就会有异常抛出。不能通过此方式实现多个线程跑起来。两种创建线程方法的区别? 问题:模拟一个机票售票系统,有三个售票点,在一天内卖出2000张票,(一共卖出2000张)。 这里要考虑,多线程并发会带来线程安全问题。本题中,有可能会出现同一张
2015-10-13 16:51:42
831
原创 韩顺平 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(
2015-10-12 22:45:08
458
原创 韩顺平 java 第38讲 线程
进程、线程的基本概念进程是指运行中的应用程序,每个进程都有自己独立的地址空间(内存空间)。比如用户点击ie浏览器,就启动了一个进程,操作系统就会为该进程分配独立的地址空间,当用户再次点击ie浏览器图标,就又启动了一个进程,操作系统将为新的进程分配新的独立的地址空间。线程是进程中的一个实体,是被系统独立调度和分派的基本单位,线程自己不拥有系统资源,只拥有一点在运行中必不可少的资源,但它可与同属一个进程
2015-10-12 20:19:35
1178
原创 韩顺平 java 第37讲 动起来的坦克
让坦克移动起来注意,创建敌人坦克的时候,需要注意用什么存储?? 数组VS集合? 首先,敌人的坦克会爆炸,用数组的时候不好控制敌人的坦克数量什么的,所以用集合。但是集合中要用ArrayList还是Vector? 我们知道后者是线程安全的,坦克后期肯定是多线程的,所以用Vector。Draw.javapackage com.chen;import java.awt.*;import java.a
2015-10-12 17:22:42
595
原创 韩顺平 java 第36讲 事件监听
事件源事件源是一个产生或者触发事件的对象,比如前面的按钮或者按键,当这个事件源对象的某些状态以某种方式发生变化时,就会产生某种类型的事件,一个事件源可能会产生多个不同类型的事件,如果某个组件(对象)希望得到事件源的事件,就需要在这个事件源上注册。事件事件就是承载事件源状态改变时的信息对象。或者说事件是事件源向事件监听器传输事件源状态信息的载体,在用户与GUI组件进行交互时就会生成事件,比如当鼠标在面
2015-10-12 15:54:24
732
原创 韩顺平 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
2015-10-12 11:06:29
650
原创 韩顺平 java 第33讲 绘图技术
绘图原理Component类提供了两个和绘图有关的最重要的方法: 1. paint(Graphics g)绘制组件的外观 2. repaint()刷新组件的外观 3. 当组件第一次在屏幕显示的时候,程序会自动的调用paint()方法来绘制组件 4. 在以下三种情况下,paint()将会被调用:窗口的大小发生变化,窗口最小化和最大化,repaint函数被调用 package com.chen
2015-10-10 14:58:35
555
原创 韩顺平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;
2015-10-09 21:57:29
792
原创 韩顺平 java 第31讲 常用组件
面板组件 JPanel为什么有JPanel?在图形用户界面编程中,如果只是普通的组件布局,可以用前面的三种布局管理器就可以解决,但是在比较复杂的布局要求时,就需要使用布局管理器的组合使用。怎么用JPanel?JPanel是面板组件,非顶层容器。 一个界面只能有一个JFrame窗体组件,但是可以有多个JPanel面板组件,而JPanel上也可以使用FlowLayout、BorderLayout、Gr
2015-10-09 10:00:17
480
原创 韩顺平java 第30讲 布局管理器
边界布局管理器(BorderLayout)将容器简单分为东南西北中5个区域,中区域最大。package test;import java.awt.*;import javax.swing.*;import javax.swing.*;public class MyClass extends JFrame{ //定义组件 JButton jb1,jb2,jb3,jb4,jb5;
2015-10-08 17:19:06
609
原创 韩顺平java 第29讲 swing介绍
GUI:图形用户界面Graphics User Interface,用户与程序交互的窗口。awt、swing、swt、Jface关系 swing是将swt升级和改善。lcd问题就是能跨平台操作,而且界面一样。 现在我们大多用swing。swing组件一览 可以看出分为:Text文本块的,菜单块,小控件(按钮,滑竿,单选等),窗口块,还有子窗口块。例子import javax.
2015-10-08 16:36:25
773
原创 韩顺平 java 第28讲 面试题
面试题下列代码编译后处出现什么问题?public class Myclass{ public static void main(String a[]){ mymethod(a); } public void mymethod(String[] a){ System.out.println(a); System.out.println
2015-10-08 15:38:20
841
原创 韩顺平 java 第25讲 异常
基本概念当出现程序无法控制的外部环境问题(文件不存在、网络不可用等)时,Java就会用异常对象来描述。、Java中用两种方法处理异常在发生异常的地方直接处理。将异常抛给调用者,让调用者处理。异常分类检查性异常:java.lang.Exception(程序在编译的时候就能后探测你这个地方可能有异常)运行期异常:java.lang.RuntimeException(编译器发现不了的,只有运行的
2015-09-29 11:32:32
575
原创 韩顺平 java 第25讲、第26讲 泛型
泛型泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数,这种参数类型可以用在类、接口和方法的创建中,分别称为泛型类、泛型接口、泛型方法。在没有泛型的情况下,通过对类型Object的引用来实现参数的“任意化”,“任意化”带来的缺点是要做显示的强制类型转换,而这种转换是要求开发者对实际参数类型可以预知的情况下进行的,对于强制类型转换错误的情况,编译器可能不提示错误,在运行的时候才出现异
2015-09-29 10:54:28
897
原创 韩顺平 java 第21讲、第22讲、第23讲、第24讲 集合
为什么用集合?想象一下,当你要做一个公司职员薪水管理系统的时候,不先考虑数据库,这时候如果用数组的话,固然是可以的,但是数组很不方便,因为数组的大小把握不了,当有员工的增加或者删除的时候,可能会导致数组的大小不够或者数组浪费。 当然可以用链表来解决,但是链表还不是最佳选择,这就引出了集合。可以动态的添加和修改。java 集合类List结构的集合类:ArrayList类、LinkedList类、V
2015-09-27 10:15:15
812
原创 韩顺平 java 第二十讲 二进制、位运算、移位运算符
计算机二进制中的原码、补码、反码 计算机内部处理的信息都是采用二进制数来表示。进位规则是“逢二进一” int a = 1; int类型是4个字节,一个字节等于八个bit。所以一共32bit。重点内容二进制的最高位是符号位,0代表正数,1代表负数正数的原码补码反码都一样负数的反码=它的原码符号位不变其他位取反负数的补码=它的反码+10 的反码、补码都是0java没有无符号
2015-09-26 17:19:32
761
原创 韩顺平 java 第十七讲 排序
内部排序 vs 外部排序内部排序:将需要处理的所有数据都加载到内存中进行排序。包括(交换式排序、选择式排序和插入式排序)外部排序:数据量过大,无法全部加载到内存中,需要借助外部存储进行排序,包括(合并排序法和直接合并排序法)。排序是数据处理中很重要的运算,一般数据处理工作25%的时间都在进行排序。交换式排序属于内部排序法,是运用数据值比较后,根据判断规则对数据位置进行交换,以达到排序的目的。
2015-09-23 22:19:26
935
原创 韩顺平 java 第十六讲 数组
数组为什么需要数组? 比如一个班的50个学生每个人有一定的钱,此时要统计所有学生的钱的总数,这样不可能分别定义50个变量,这就引出了数组! 数组可以存放多个同一个类型的数据数组的定义数据类型 数组名[] = new 数据类型[数组大小];//中括号和数组名的位置可以互换//或者数据类型 数组名[];数组名 = new 数据类型[数组大小];其实这个定义方法怎么记忆呢? 对比数组和普通的变
2015-09-23 21:15:15
570
原创 韩顺平java 第14讲第15讲 作业评讲
韩顺平java 第14讲第15讲 作业评讲1. switch(4){ default: System.out.println("0"); case 1: System.out.println("1"); break; case 2: System.
2015-09-22 19:13:48
404
原创 韩顺平 java 第13讲第14讲 抽象类、接口、final
抽象类为什么存在抽象类?当父类的一些方法不能确定时,可以用abstract关键字来修饰该方法(也就是抽象方法),用abstract来修饰该类。 比如之前的Animal类,可以这么定义:abstract class Animal{ String name; int age; abstract public void cry();}抽象类和抽象方法需要注意当一个类继承的父类
2015-09-22 11:36:18
678
原创 韩顺平 java 第十二讲 多态
什么是多态?就是指一个引用(类型)在不同情况下的多种状态。 也可以这么理解:多态是指通过指向父类的指针,来调用在不同子类中实现的方法。面向对象的三大特性:封装、继承、多态。从一定角度来看,封装和继承几乎都是为多态而准备的。多态的定义:指允许不同类的对象对同一消息做出响应。即同一消息可以根据发送对象的不同而采用多种不同的行为方式。(发送消息就是函数调用)实现多态的技术称为:动态绑定(dynam
2015-09-20 16:47:07
732
原创 约瑟夫问题(Josephu)
问题描述设编号分别为:1,2,…,n的n个人围坐一圈。约定序号为k(1 <= k < = n)的人从1开始计数,数到m的那个人出列,他的下一位又从1开始计数,数到m的那个人又出列,依次类推,直到所有人出列为止。算法思路用一个不带头结点的循环链表来处理Josephu问题:先构成一个有n个结点的单循环链表,然后从第k结点起从1计数,计到m时,对应结点从链表中删除;然后再从被删除结点的下一个结点起又从1开
2015-09-20 11:58:01
770
原创 韩顺平 java 第十讲 重载、覆盖
继承为什么要继承?比如说,定义三个类: 分别带表小学生、中学生和大学生。 这三个类的属性都一样,有年龄、性别、名字等,但是方法有所不同,交学费不同或者选课不同。 这样的三个类定义好了有个问题,就是代码很多都类似。产生了重复。所以,当多个类存在相同的属性和方法时,可以从这些相同的属性和方法中抽象出父类,在父类中定义这些相同的属性和方法,所有的子类不需要重新定义这些属性和方法,只需要通过 exte
2015-09-19 22:21:35
371
原创 韩顺平 java 第八讲第九讲 this、类变量、类方法、封装
thispublic class Demo{ public static void main(String []args){ }}class Person{ int age; String name; public Person(int age, String name){ this.age = age; //用了this,可读性更好了!
2015-09-19 18:45:27
645
原创 韩顺平 java 第五讲第六讲第七讲 类与对象 成员方法 构造方法
两只猫: 猫1: 花色,1岁,叫小花 猫2:白色,2岁,叫小白 问:当输入猫的名字时,输出猫的颜色和岁数当用过程式语言时候,会发现,变量很分散。 此时引入类: 可以提取一些共同的东西,比如提取猫类。做一个类class Cat{ //类名首字母大写 int age; String name; String color;}创建一个对象Cat cat1
2015-09-17 22:52:40
613
原创 韩顺平 java 第三讲、第四讲 运算符 流程控制
算数运算符+-*/%+++=-=*=/=%=int a = 1;int b = ++a;int c = a++;关系运算符==><>=<=!=逻辑运算符&&||!流程控制顺序控制分支控制循环控制 注意 switch 语句中,需要有break。 并且case后的类型和switch后的类型必须一样。 而且,switch中的数据类型只能有这几
2015-09-17 15:14:49
287
原创 韩顺平 java 第二讲 变量 数据类型
变量 数据类型int a = 10这句话代表什么 输入这句话,程序就在内存开辟一个空间(一个int 类型,占4个字节),进行存储。 int —— 4个字节 long—— 8个字节 变量是程序中基本组成单位java 基本数据类型整数类型 byte:一个字节 short:两个字节 int:四个字节 long:八个字节浮点类型(小数类型:float、double)布尔类型字符类型
2015-09-17 14:30:34
346
原创 .DS_Store 文件是什么?
.DS_Store是Mac OS保存文件夹的自定义属性的隐藏文件,如文件的图标位置或背景色,相当于Windows的desktop.ini。禁止.DS_store生成:打开 “终端” ,复制黏贴下面的命令,回车执行,重启Mac即可生效。defaults write com.apple.desktopservices DSDontWriteNetworkStores -bool TRUE恢复.DS_s
2015-09-16 10:42:15
10717
1
原创 韩顺平 java 第一讲 内容介绍,项目演示,原理剖析
课程介绍java面向对象编程java图形界面java数据库编程java文件io流java网络编程java多线程java是什么?java是一种语言。人和计算机交流,用到编程语言。java开发工具记事本eclipse。。。 可以先用记事本,之后再用eclipse…… 这样可以更深刻的理解java技术,培养代码感 有利于公司面试java语言的特点是简单的是面向对象的是跨平
2015-09-01 22:05:27
1178
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人