
java基础
醉小义
学习算法让自己有更大的提升
展开
-
位运算符--Java基础013
/*位运算符:位运算符就是直接操作二进制位的。 & (与) 两个数的某一位进行比较时,同时为1才是ture,即对应位置为1,否则为0 | (或) 两个数的某一位进行比较时,其中一个为1才是ture,即对应位置为1,否则为0 ^ (异或) 两个数的某一位进行比较时,二者不同才为ture,即对应位置为1,否则为0规律: 如果操作数A连续异或同一个操作数两次,那么结果还是操作数A原创 2017-01-10 20:59:29 · 241 阅读 · 0 评论 -
Runtime类--Java基础062
package test;import java.io.IOException;/* Runtime类封装了运行时的环境。每个 Java 应用程序都有一个 Runtime 类实例,使应用程序能够 与其运行的环境相连接。一般不能实例化一个Runtime对象,应用程序也不能创建自己的 Runtime 类 实例,但可以通过 getRuntime 方法获取当前Runtime运行时对象的引用原创 2017-05-23 22:21:10 · 283 阅读 · 0 评论 -
Date类、Calendar类与SimpleDateFormat类-Java基础063
package test;import java.io.IOException;import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date; public class Demo7 { public static void main(String[] args) throws原创 2017-05-24 12:55:41 · 268 阅读 · 0 评论 -
Math与Random类-Java基础064
package test;import java.util.Random;/*Math 数学类, 主要是提供了很多的数学公式。abs(double a) 获取绝对值ceil(double a) 向上取整 取大的数floor(double a) 向下取整 取小的数round(float a) 四舍五入random() 产生一个随机数. 大于等于 0.0 且小于原创 2017-05-24 12:59:55 · 224 阅读 · 0 评论 -
线程的相关概念--Java基础065
进程: 进程就是正在运行的应用程序。 进程了负责了内存空间划分。线程: 一个进程中的 代码是由线程去执行的,线程也就是进程中一个执行路径。多线程: 一个进程中有多个线程可以同时执行任务。多线程 的好处: 1. 解决一个进程中可以同时执行多个任务的问题。 2. 提高了资源利用率。多线程的弊端: 1. 增加了cpu的负担。 2. 降低了一个进程中线程 的执行概率。 3. 出原创 2017-05-25 13:33:32 · 243 阅读 · 0 评论 -
线程常用的方法--Java基础066
package com.sqf.thread;/*线程常用的方法: Thread(String name) 初始化线程的名字 setName(String name) 设置线程对象名 getName() 返回线程的名字 sleep() 线程睡眠指定的毫秒数。 静态的方法, 那个线程执行了sleep原创 2017-05-25 13:44:22 · 274 阅读 · 0 评论 -
线程创建的两种方式01--Java基础067
package com.sqf.thread;/* 需求: 模拟3个窗口同时在售50张 票 。 问题1 :为什么50张票被卖出了150次? 出现 的原因: 因为num是非静态的,非静态的成员变量数据是在每个对象中都会维护一份数据的, 三个线程对象就会有三份。解决方案:把num票数共享出来给三个线程对象使用。使用static修饰。问题2: 出现了线程安全问题 ?线程 安全问原创 2017-05-25 13:46:32 · 217 阅读 · 0 评论 -
线程的生命周期--Java基础069
原创 2017-05-25 13:55:28 · 242 阅读 · 0 评论 -
死锁现象-Java基础070
package com.sqf.thread;public class DealLock extends Thread{ public DealLock(String name){ super(name); } @Override public void run() { if("张三".equals(Thread.currentThread().getName()))原创 2017-05-25 14:17:10 · 205 阅读 · 0 评论 -
String类构造方法与普通方法--Java基础058
package test;public class Demo1 { public static void main(String[] args) { //1对象的比较 String str1 = "hello"; String str2 = "hello"; String str3 = new String("hello"); String str4 =原创 2017-05-23 13:54:35 · 363 阅读 · 0 评论 -
生产者与消费者--Java基础071
package cn.itcast.thread;/* 线程通讯: 一个线程完成了自己的任务时,要通知另外一个线程去完成另外一个任务. 生产者与消费者wait(): 等待 如果线程执行了wait方法,那么该线程会进入等待的状态,等待状态下的线程必须要被其他线程调用notify方法才能唤醒。notify(): 唤醒 唤醒线程池等待线程其中的一个。notifyAll()原创 2017-05-25 14:27:51 · 259 阅读 · 0 评论 -
System类--Java基础061
package test;import java.util.Arrays;import java.util.Properties;class Person{ String name; public Person(String name){ this.name = name; } @Override protected void finalize() throws原创 2017-05-23 22:09:52 · 268 阅读 · 0 评论 -
String、StringBuffer与StringBuilder的区别--Java基础060
String字符串是常量;它们的值在创建之后不能更改.字符串的内容一旦发生了变化,那么马上会创建一个新 的对象。StringBuffer(字符缓存类)其实就是一个存储字符 的容器。 如果需要频繁修改字符串 的内容,建议使用字符串缓冲 类(StringBuffer)。StringBuffer 与 StringBuilder的相同处与不同处:相同点原创 2017-05-23 16:59:14 · 207 阅读 · 0 评论 -
位运算符面试题--Java基础014
/*位运算符可能会出现的笔试题目: 1. 交换两个变量的值,不准出现第三方变量。 2. 取出一个二进制数据的指定位数。要求读取该二进制数据的低4位 00000000-00000000-00010100-01001101 & 00000000-00000000-00000000-00001111 ---------------------------------------原创 2017-01-10 21:03:13 · 339 阅读 · 0 评论 -
移位运算符--Java基础015
/*移位运算符: <<(左移)规律:一个操作数进行左移运算的时候,结果就是等于操作数乘以2的n次方,n就是左移 的位数. 3<<1 = 3 *2(1) = 6; 3<<2 = 3*2(2) = 12 3<<3 = 3*2(3) = 24 >>(右移)规律:一个操作数在做右移运算的时候,实际上就是等于该操作数除以2的n次方,n就是右移的位数。 3>>1 = 3 / 2(1)原创 2017-01-10 21:06:33 · 253 阅读 · 0 评论 -
使用异或对图片数据进行加密.--Java基础017
/*使用异或对图片数据进行加密.对于任何一个数对对他异或二次还是他本身 6^3^3=6*/import java.io.*;class ImageTest { public static void main(String[] args) throws Exception { //找到图片文件 File inFile = new File("e:\\加密的图片.jpg原创 2017-01-10 21:13:37 · 2298 阅读 · 0 评论 -
扫描器的使用--Java基础019
/*需求: 键盘录入一个分数,根据分数输出对应的等级。比如: 100-90 A等级 89-80 B等级 ..... E等级接受键盘录入数据的步骤: 1. 创建一个扫描器对象。 2. 调用扫描器对象的nextInt方法扫描数据。 3. 导入包。*/import java.util.*;class Demo3 { public static void main(S原创 2017-01-10 21:31:02 · 395 阅读 · 0 评论 -
负数的存储原理及-128的由来--020
负数的存储原理:-128的由来:原创 2017-01-10 21:34:49 · 484 阅读 · 0 评论 -
final关键字--Java基础052
/*final(最终、修饰符) final关键字的用法: 1. final关键字修饰一个基本类型的变量时,该变量不能重新赋值,第一次的值为最终的。 2. fianl关键字修饰一个引用类型变量时,该变量不能重新指向新的对象。 3. final关键字修饰一个函数的时候,该函数不能被重写。 4. final关键字修饰一个类的时候,该类不能被继承。常量 的修饰符一般为: publi原创 2017-01-22 20:08:30 · 265 阅读 · 0 评论 -
abstract关键字--Java基础053
/*抽象类:目前存在的问题: 1. 动物类的run方法描述的不正确。 2. 没有强制要子类一定要重写run方法。抽象类的应用场景: 我们在描述一类事物的时候,发现该种事物确实存在着某种行为,但是这种行为目前是不具体的,那么我们可以抽取这种行为 的声明,但是不去实现该种行为,这时候这种行为我们称作为抽象的行为,我们就需要使用抽象类。抽象类的好处: 强制要求子类一定要实现指定的原创 2017-01-22 20:30:06 · 283 阅读 · 0 评论 -
abstract的使用案例--Java基础054
/*需求: 描述一个图形、圆形、 矩形三个类。不管哪种图形都会具备计算面积与周长的行为,但是每种图形计算的方式不一致而已。常量的命名规范:全部字母大写,单词与单词 之间 使用下划线分隔。abstract不能与以下关键字共同修饰一个方法: 1. abstract不能与private共同修饰一个方法。 2. abstract 不能与static共同修饰一个方法。 3. abstra原创 2017-01-22 20:34:14 · 499 阅读 · 0 评论 -
单继承--Java基础055
/*一个类最多只能有一个直接的父类。但是有多个间接的父类。java是单继承。*/class Ye{ String name;}class Fu extends Ye{}//class Zi extends Fu{}class Demo6 { public static void main(String[] args) { // System.原创 2017-01-22 20:55:01 · 218 阅读 · 0 评论 -
StringBuffer--Java基础059
package test;public class Demo4 { public static void main(String[] args) { //1.构造方法 /* StringBuffer() 构造一个其中不带字符的字符串缓冲区,默认为16字符 StringBuffer(CharSequence seq) //传入字符串到缓冲区原创 2017-05-23 16:55:50 · 227 阅读 · 0 评论 -
线程创建的两种方式02--Java基础068
package com.sqf.thread;//需求: 模拟3个窗口同时在售50张 票 。public class SaleTicket1 implements Runnable{ int num = 50; //此种方法不是静态 注意思路 @Override public void run() { while(true){ synchronized (原创 2017-05-25 13:47:59 · 328 阅读 · 0 评论 -
线程停止与守护进程--072
package cn.itcast.thread;/* 线程的停止: 1. 停止一个线程 我们一般都会通过一个变量去控制的。 2. 如果需要停止一个处于等待状态下的线程,那么我们需要通过变量配合notify方法或者interrupt()来使用。 */public class Demo6 extends Thread { boolean flag = true; pu原创 2017-05-25 14:39:56 · 339 阅读 · 0 评论 -
泛型全解--Java基础081
什么是泛型?泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。这种参数类型可以用在类、接口和方法的创建中,分别称为泛型类、泛型接口、泛型方法。 Java语言引入泛型的好处是安全简单。泛型的好处: 1. 将运行时的异常提前至了编译时。 2. 避免了无谓的强制类型转换 。 泛型在集合中的常见应用: ArrayList list原创 2017-05-28 09:43:45 · 333 阅读 · 0 评论 -
Eclipse常用快捷键
Alt + / 内容提示:Ctrl + 1 提示Ctrl + shift + O 导包Ctrl + Shift + F 格式化代码块Alt+上下键 代码位置调换 Ctrl+/ 添加/除去单行注释 Ctrl+Shift+/ 添加多行注释 Ctrl+Shift+\ 删除多行注释 window->reset perspective 重置透视图转载 2017-05-28 09:58:33 · 9273 阅读 · 0 评论 -
集合Map类的详解--Java基础082
package cn.itcastset.map;import java.util.HashMap;import java.util.Map;/*双列集合:-------------| Map 如果是实现了Map接口的集合类,具备的特点: 存储的数据都是以键值对的形式存在的,键不可重复,值可以重复。----------------| HashMap --------------原创 2017-05-28 13:28:24 · 343 阅读 · 0 评论 -
正则表达式全解
package cn.itcast.exp;/* 正则表达式:其实一种规则,有自己特殊的应用,其作用就是针对于字符串进行操作。 正则:就是用于操作字符串的规则,其中这些规则使用了一些字符表示。 预定义字符类 . 任何字符(与行结束符可能匹配也可能不匹配) \d 数字:[0-9] \D 非数字: [^0-9] \s 空白字符:[ \t\n\x0B\f\r原创 2017-05-29 12:50:27 · 658 阅读 · 0 评论 -
jdk1.5新特性
package cn.itcast.jdk15;import java.util.ArrayList;import java.util.Collections;/* jdk1.5新特性之-------静态导入 静态导入的作用: 简化书写。 静态导入可以作用一个类的所有静态成员。 静态导入的格式: import static 包名.类名.静态的成员; 静态导入原创 2017-05-29 21:42:17 · 504 阅读 · 0 评论 -
File类详解--Java基础083
package com.sqf.file;import java.io.File;import java.io.IOException;/* File类的构造方法: File(String pathname) 指定文件或者文件夹的路径创建一个File文件。 File(File parent, String child) 根据 parent 抽象路径名和 chi原创 2017-05-30 10:10:30 · 384 阅读 · 0 评论 -
InputStream类、OutputStream类、BufferedInputStream类与BufferedOutputStream类--Java基础084
package com.sqf.io;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.IOException;import java.util.Arrays;/* File类: 用于描述一个文件或者文件夹的。 通过Fi原创 2017-05-30 22:01:05 · 585 阅读 · 0 评论 -
java中的\n与\r的区别
\r : return 到当前行的最左边。\n: newline 向下移动一行,并不移动左右。Linux中\n表示回车+换行;Windows中\r\n表示回车+换行。Mac中\r表示回车+换行。在windows中换行是\n\r,\n表示换行,\r表示回车,\r和一种老式打印机有关。在unix和Linux中换行是\n。所以在windows下打开Linux或unix的文档时转载 2017-06-01 22:19:37 · 672 阅读 · 0 评论 -
编译class文件与jar打包命令--Java基础056
1.编译class文件命令javac -d 指定类文件的存放路径 java源文件2.jar打包命令jar cvf jar文件的名字 class文件或者是文件夹 打jar包要注意的事项:1. 一个程序打完了jar之后 必须要在清单文件上指定入口类: 格式 Main-Class: 包名.类名2. jar包双击运行仅对于图形化界面的程序起作用,对控制台的程序不起作用。原创 2017-05-22 14:55:43 · 675 阅读 · 0 评论 -
JvavScript与java中的正则表达式的区别
Title 1.JavaScript是部分匹配,若全部匹配需要加上开始于结束的标识符,(^表达式$),Java是全部匹配 2.JavaScript需要添加模式,而java不需要 3.javaScript的匹配模式写法是 /正则表达式/模式 或者 new RegExp("正则表达式",模式);Java是写在"表达式"原创 2017-07-13 17:27:21 · 746 阅读 · 0 评论 -
String与hashCode方法
package cn.itcastset;public class Demo4 { public static void main(String[] args) { String str1 = "hello"; String str2 = new String("hello"); System.out.println("两个是同一个对象吗?"+(str1==str2));原创 2017-05-27 18:50:55 · 2151 阅读 · 0 评论 -
重写eqlus与hashCode方法例子
package cn.itcastset;import java.util.HashSet;import java.util.Scanner;/* 需求: 接受键盘录入用户名与密码,如果用户名与密码已经存在集合中,那么就是视为重复元素,不允许添加到HashSet中。 */class User{ String userName; String password;原创 2017-05-27 16:49:46 · 1050 阅读 · 0 评论 -
数组的定义--Java基础027
/*数组:数组是存储同一种数据类型数据的集合容器。数组的定义格式: 数据类型[] 变量名 = new 数据类型[长度];分析数组: 左边: int[] arr 声明了一个int类型的的数组变量,变量名为arr。 int : 表示该数组容器只能存储int类型的数据。 [] : 这是一个数组类型。 arr : 变量名. 右边:new int[50]; 创原创 2017-01-13 16:02:14 · 281 阅读 · 0 评论 -
集合常用的方法--073
package com.sqf.thread;import java.util.ArrayList;import java.util.Collection;/*集合:集合是存储对象数据的集合容器。集合比数组的优势: 1. 集合可以存储任意类型的对象数据,数组只能存储同一种数据类型 的数据。 2. 集合的长度是会发生变化的,数组的长度是固定的。 -------| Colle原创 2017-05-26 13:56:33 · 240 阅读 · 0 评论 -
List接口中特有方法--074
package com.sqf.conlection;import java.util.ArrayList;import java.util.List;/*List接口中特有方法:如果是实现了List接口的集合类,该集合类具备的特点:有序,可重复。有序: 集合的有序不是指自然顺序,而是指添加进去的顺序与元素出来的顺序是一致的 添加 add(int index, E eleme原创 2017-05-26 17:17:35 · 333 阅读 · 0 评论