Java基础
qq_38930240
这个作者很懒,什么都没留下…
展开
-
char 和String
String str = "程新宇";for(int i =o;i<str.length();i++){ char c = str.charAt(i); System.out.println(Character.toString(c));}1. String s = String.valueOf('c'); //效率最高的方法2. String s = ...原创 2019-04-03 11:17:13 · 160 阅读 · 0 评论 -
final关键字
final关键字的作用相信对于final的用法,大多数人都可以随口说出三句话:1、被final修饰的类不可以被继承(String ,Math)2、被final修饰的方法不可以被重写,可以重载3、被final修饰的变量不可以被改变(final修饰基本数据类型,值不可变;final修饰引用数据类型,地址不可变(一直引用同一对象))重点就是第三句。被final修饰的变量不可以被改变,...原创 2018-07-16 10:49:47 · 94 阅读 · 0 评论 -
多态Polymorphism
概述面向对象有四个特征,抽象,继承,封装,多态,抽象,继承,封装是多态的基础,多态是抽象,继承,封装的表现。 什么是多态不同类的对象对同一消息作出不同的响应就叫做多态。就像上课铃响了,上体育课的学生跑到操场上站好,上语文课的学生在教室里坐好一样。 多态的作用简单讲就是解耦。再详细点讲就是,多态是设计模式的基础,不能说所有的设计模式都使用到了多态,但是23种中...原创 2018-07-16 11:07:58 · 155 阅读 · 0 评论 -
继承
超类位于子类之上,但并不意味着比子类拥有更多的功能,相反,子类比超类拥有的功能更丰富。override重写"==" 方法名形参列表相同 "<=" 子类返回值类型或者异常声明小于等于父类 ">=" 子类访问权限大于大于等于父类superclass Manager extends Empoyee{public void steBouns(double b) { ...原创 2018-07-19 09:10:46 · 112 阅读 · 0 评论 -
工具类Collections
/* * Collections的sort排序 */public class ListDemo { public static void main(String[] args) { List<String> ars = new ArrayList<>(); for(int i=0;i<4;i++) { ars.add(String.valu...原创 2018-10-15 17:21:49 · 84 阅读 · 0 评论 -
Equals与==
String str1 = new String("hello"); String str2 = new String("hello"); System.out.println(str1==str2); //false System.out.println(str1.equals(str2));//true一....原创 2018-07-20 22:09:19 · 1226 阅读 · 1 评论 -
toString方法
Object中还有一个重要的方法——toString方法。用于返回表示对象值的字符串。标准toString方法:public String toString() { return getClass().getName() + "@" + Integer.toHexString(hashCode()); } 重写toString方法:@Overrid...原创 2018-07-22 16:03:00 · 170 阅读 · 0 评论 -
静态域和静态方法static
静态变量和静态方法static关键字最基本的用法是:1、被static修饰的变量属于类变量,可以通过类名.变量名直接引用,而不需要new出一个类来2、被static修饰的方法属于类方法,可以通过类名.方法名直接引用,而不需要new出一个类来被static修饰的变量、被static修饰的方法统一属于类的静态资源,是类实例之间共享的,换言之,一处变、处处变。JDK把不同的静...转载 2018-07-15 16:50:11 · 707 阅读 · 0 评论 -
this 关键字
this这个关键字,相当于普通话里的“我”小明说 “我吃了” 这个时候,“我” 代表小明小红说 “我吃了” 这个时候,“我” 代表小红"我"代表当前人物this这个关键字,相当于普通话里的“我”this即代表当前对象1.通过this访问属性 2.通过this调用构造方法public class Hero { String name; //姓名 ...原创 2018-09-30 21:24:09 · 122 阅读 · 0 评论 -
LAMADA表达式
Lambda表达式是Java SE 8中一个重要的新特性。lambda表达式允许你通过表达式来代替功能接口。 lambda表达式就和方法一样,它提供了一个正常的参数列表和一个使用这些参数的主体(body,可以是一个表达式或一个代码块)。Lambda表达式的语法基本语法:(parameters变量)->{ statements; }例子:package com.cxy.test...原创 2018-09-06 21:59:03 · 217 阅读 · 0 评论 -
purpose of private static final long serialVersionUID = 1L;
其实序列化的作用是能转化成Byte流,然后又能反序列化成原始的类。能在网络进行传输,也可以保存在磁盘中,有了SUID之后,那么如果序列化的类已经保存了在本地中,中途你更改了类后,SUID变了,那么反序列化的时候就不会变成原始的类了,还会抛异常,主要就是用于版本控制。https://blog.csdn.net/iaiti/article/details/41278699...转载 2018-11-14 10:11:01 · 101 阅读 · 0 评论 -
类型转换与随机字符串验证码
由于进行强制类型转换时,表数范围大的类型转换为表数范围小的类型时,会造成溢出等问题,所以,可以利用这一点,先随机生成一个指定范围内的int数字,然后将其强转为char类型,多次生成的字符进行连接97-122生成的是小写字母/** * 生成随机6位小写字符串 */public class RandomStr { public static void main(Strin...原创 2018-12-20 00:02:20 · 145 阅读 · 0 评论 -
入门lambda(三) Streams filter example
Stream和Collection结构化的数据不一样,Stream是一系列的元素,就像是生产线上的罐头一样,一串串的出来。管道指的是一系列的聚合操作。管道又分3个部分管道源:在下面例子里,源是一个List中间操作: 每个中间操作,又会返回一个Stream,比如.filter()又返回一个Stream, 中间操作是“懒”操作,并不会真正进行遍历。结束操作:当这个操作执行后,流就被使用“光...原创 2019-04-10 15:10:31 · 201 阅读 · 0 评论 -
入门lambda(二) foreach
https://blog.csdn.net/qq_38930240/article/details/88994338https://mp.csdn.net/postedit/84840279总结的遍历需要注意的package foreach;import java.util.*;/** * 使用lambda 进行遍历,List的遍历前面试了,换成Map 玩玩 */pub...原创 2019-04-10 13:42:19 · 1282 阅读 · 0 评论 -
入门lambda(一) Comparator example
今天开始学习Java 8 的 Lambda 表达式,写比较器去操作List 的排序1.不使用Lambda 进行排序package sort;import java.math.BigDecimal;import java.util.ArrayList;import java.util.Collections;import java.util.Comparator;import ...原创 2019-04-10 10:54:15 · 172 阅读 · 0 评论 -
Enum枚举
规范用法一:常量在JDK1.5 之前,我们定义常量都是: public static final.... 。现在好了,有了枚举,可以把相关的常量分组到一个枚举类型里,而且枚举提供了比常量更多的方法。 定义枚举类public enum ColorEnum { RED, GREEN, BLANK, YELLOW }使用时ColorEnum color = Co...原创 2019-01-28 14:12:37 · 109 阅读 · 0 评论 -
正确的使用变量
往往没有人在意如何使用变量,大部分人直接使用类变量和实例变量,减少了局部变量的使用,这样是错误的。但一些规范,比如(int i=0;i<10;i++){...} 已经告诉我们如何使用变量了,你总不会写成 static int i;public void test{for(i=0;i<10;i++))} 或者public void test{int i...原创 2019-01-27 23:13:08 · 196 阅读 · 0 评论 -
局部变量
•可分为三种:–形参,整个方法有效,很容易理解–方法局部变量 ,方法体内定义的,作用域从定义的地方到方法的结束,代码块局部变量,代码块内定义的,作用域从定义的地方到代码块的结束 不同于成员变量,除了形参,其他都需要显示初始化。虽然ide 会提醒我们,但是应该知道.同名问题,1.一个类中,不能定义两个同名的成员变量,即使一个是static变量,一个不是.2.一个方法内...原创 2019-01-27 23:03:03 · 105 阅读 · 0 评论 -
成员变量
1.成员变量指类里面定义的变量,分为实例变量和类变量(以static 修饰).当然不能重名2.对于类属性无论通过类还是对象来访问都是访问同一个对象,只要一个对象改变了类属性,那么其他对象对应的类属性也改变了.但是应该避免这种情况,尽量使用类.类变量来访问3.成员变量不用显式初始化,只要定义了一个类属性或实例属性,系统默认进行初始化。...原创 2019-01-27 22:48:02 · 406 阅读 · 0 评论 -
类型后面三个点(String...)和数组(String[])的区别
比如void test(String...) ,test("a","b")或者test(new String[]{"a","b"}),而如果形参是数组,void test(String[] books),调用时只能test(new String[]{"a","b"}) ,很麻烦一个方法最多有一个个数可变的形参,调用的时候,传入叫可变长度参数列表,其语法就是类型后跟…,表示此处接受的参数为...原创 2019-01-27 21:47:50 · 600 阅读 · 0 评论 -
Pattern& Matcher
public static final Pattern CODE = Pattern.complie("[0-9]{6}$");//6位数字正则验证String code = "123456";boolean result1= Pattern.matches("[0-9]{6}$",code); boolean result2= CODE.matcher(smsCode)....原创 2019-02-01 15:49:37 · 116 阅读 · 0 评论 -
Java最新手机号码正则验证
中国电信号段 133、149、153、173、177、180、181、189、199中国联通号段 130、131、132、145、155、156、166、175、176、185、186中国移动号段 134(0-8)、135、136、137、138、139、147、150、151、152、157、158、159、178、182、183、184、187、188、198其他号段14号段以前为上...原创 2018-12-24 17:47:07 · 313 阅读 · 0 评论 -
转义字符的应用
这里在列上一些转义字符 \\ 反斜杠 \t 间隔 ,制表符\u0009')\n 换行 ('\u000A')\r 回车 ('\u000D')\d 数字 等价于 [0-9]\D 非数字 等价于 [^0-9]\s 空白符号 [\t\n\x0B\f\r]\S 非空白符号 [^\t\n\x0B\f\r]\w 单独字符 [a-zA-Z_0-9]\W 非单独字符 [^a-zA-Z_0-9]...原创 2018-12-19 00:04:33 · 478 阅读 · 0 评论 -
垃圾回收机制OG
GC是Garbage Collection的缩写,即垃圾回收这里所谓的垃圾,指的是那些不再被使用的对象,JVM的垃圾回收机制使得开发人员从无聊、容易犯错的手动释放内存资源的过程中解放出来。开发人员可以更加专注的进行业务功能的开发,而资源回收的工作交由更加专业的垃圾回收机制自动完成。年轻代:Eden Survior1 Survior2 年老区:Tenured ...原创 2018-09-29 15:51:44 · 179 阅读 · 0 评论 -
类
类是构造对象的模版。由类构造(construct)对象的过程称为创建类的实例(instance)。 Java 是一个支持并发、基于类和面向对象的计算机编程语言。下面列出了面向对象软件开发的优点:代码开发模块化,更易维护和修改。 代码复用。 增强代码的可靠性和灵活性。 增加代码的可理解性。一.构造器(构造方法)用于初始化对象通过new关键字进行调用 默认有返回值(类型为本类...原创 2018-09-29 15:13:21 · 95 阅读 · 0 评论 -
回调
回调(callback)是一种常见的程序设计模式(模板方法模式),可以指定某个特定动作发生时应该采取的动作。例如,在按下鼠标或选择某个菜单项时应该采取什么动作。 java.swing包中有一个Timer类,可以使用它在到达给定的时间间隔时发出通告。例如,假设程序中有一个时钟,就可以请求每秒钟获得一个通告,以更新时钟的画面。 构造时,需要设置一个时间间隔,并告知定时器,当到达时间...原创 2018-08-12 08:26:26 · 123 阅读 · 0 评论 -
数组
1. 数组是一种数据结构,用来存储同一类型值的集合。通过一个整型下标可以访问数组中的每一个值。a[i]就是数组中下标为i的整数。声明时,需要指出数组类型(紧跟[])和数组变量的名字,如 :int[] s;//声明整型数组a,声明时不能指定长度,如int s[5]是错误的 这条语句没有将a初始化为一个真正的数组,应该使用new运算符创建数组。int[] s=new int...原创 2018-07-09 16:52:23 · 145 阅读 · 0 评论 -
抽象Abstract
不能被实例化(即不能有New...)只能被当做父类,且必须被继承,如果子类不是抽象类的话,就需要实现抽象父类的所有方法 abstract是说必须继承、重载 abstract和final不能同时修饰一个类 abstract只能修饰类,方法,不能修饰属性 抽象方法中不能指定程序体,即不能有{},参数表之后直接用 ; 结束 abstract方法所在的类必须是abstract类 在类中声明...原创 2018-07-19 23:20:49 · 154 阅读 · 0 评论 -
接口
首先,接口不是一个类。是对类的一组需求描述,这些类需要遵循接口描述的同一格式进行定义。接口包含常量和方法的定义,而没有变量和方法的实现。在设计LOL的时候,进攻类英雄有两种,一种是进行物理系攻击,一种是进行魔法系攻击这时候,就可以使用接口来实现这个效果。接口就像是一种约定,我们约定某些英雄是物理系英雄,那么他们就一定能够进行物理攻击。 public interface AD...原创 2018-08-11 15:56:02 · 217 阅读 · 0 评论 -
异常
Java的异常分为两种,一种是运行时异常(RuntimeException),一种是非运行异常也叫检查式异常(CheckedException)。1、运行时异常不需要程序员去处理,当异常出现时,JVM会帮助处理。常见的运行时异常有:ClassCastException(类转换异常)ClassNotFoundExceptionIndexOutOfBoundsException(数...原创 2018-09-25 21:18:55 · 155 阅读 · 0 评论 -
递归调用和程序执行过程
递归调用在一个方法内部对自身的调用就称为递归 递归一定要向已知方向递归,即某时刻返回值是已知的,不然变成了无穷递归整个方法执行在内存中执行的过程如下图所示:范例:使用递归计算第5个斐波那契数列数/*计算第5个斐波那契数列数*//*斐波那契数列特点:f(1)=1,f(2)=1,f(3)=f(1)+f(2),f(4)=(f2)+(f3)……依次类推。即后一个数都是等于前...原创 2018-09-25 17:32:08 · 6900 阅读 · 0 评论 -
流程控制语句
1.不能在嵌套的两个块中声明同名变量public static void main(String[] args) { int n;{ int k; int n; } }}1.if语句:当条件为真时,执行if(yourSales>=target) { performace="Satisfactory"; bonus=100; } 为fl...原创 2018-07-07 18:50:29 · 116 阅读 · 0 评论 -
运算符
1.算术运算符 + - * / %二元(两个操作数)整数时:有一个为long,结果为long 没有long,结果均为int浮点数时:有一个为double,结果为double 都是float,结果才是float%取余数,结果与左操作数一致。 7%3=1 ; -7%3= -1; 7% -3 = 1;15%2=1, 15/2=7, 15. 0/2=7.5...原创 2018-07-02 10:03:19 · 1042 阅读 · 0 评论 -
常量,变量和数据类型
1.常量(Constant)关于final:将变量声明为final,final int AGE = 18; AGE将不能修改 常量命名规范:字母大小写+ _ 如 MAX_VALUE2. 变量(Variable)变量的定义是: 用来命名一个数据的标识符1949 这是一个数字,代表某年如果要命名这个数字,在java里就会写成:int year = 1949;...原创 2018-07-01 11:40:30 · 307 阅读 · 0 评论 -
标识符和关键字
一.标识符二.关键字原创 2018-09-25 10:46:33 · 636 阅读 · 0 评论 -
一个简单的java程序,注释
public class HelloWorld{ public static void man(String []args){ System.out.println("helloworld"); } } public 作为控制修饰符(access modifier),用于控制程序的其他部分对这段代码的访问级别...原创 2018-07-01 10:44:13 · 410 阅读 · 0 评论 -
使用printf或format 进行格式化输出
1.不使用格式化输出,就要进行大量字符串拼接+,很麻烦2.使用printf或者format()进行格式化输出printf和format能够达到一模一样的效果,在printf中直接调用了format ,本质是一个输出流3.换行符 %n换行符就是另起一行 --- '\n' 换行(newline)回车符就是回到一行的开头 --- '\r' 回车(return)在eclips...转载 2018-07-20 10:27:22 · 9959 阅读 · 0 评论 -
可变字符序列StringBuffer
1.基本方法public class Tset03 {public static void main(String[] args) { String str1 = "国安 是冠军"; StringBuffer sb = new StringBuffer(str1); sb.append("1");//在最后追加,可以append().append() System...原创 2018-10-03 20:51:08 · 316 阅读 · 0 评论 -
集合框架
1.ArrayList1.1与数组的区别数组局限性:多了放不下,少了浪费为了解决数组的局限性,引入容器类的概念。 最常见的容器类就是ArrayList“capacity"会随着对象的增加,自动扩容,默认容量10,int newCapacity = (oldCapacity * 3)/2 + 1;只需要不断往容器里增加即可,不用担心会出现数组的边界问题。当数组的全部空间...原创 2018-10-04 01:46:18 · 94 阅读 · 0 评论 -
递归和迭代的对比
为什么使用迭代就快,而使用递归就会变得慢呢?我们都知道,递归调用实际上是函数自己在调用自己,而函数的调用开销是很大的(包括空间和时间),而系统要为每次函数调用分配存储空间,提供给函数进行运行。而在函数调用结束后,则需要释放空间,即所谓的弹栈复点。因此函数调用消耗的空间和时间并不是非常乐观的。但难度就不用递归了么?并非如此,当我们在遇到同一个问题时,如果递归解决的(时间和空间)复杂度不明显优于...原创 2018-09-29 13:54:47 · 404 阅读 · 0 评论