zoukankan      html  css  js  c++  java
  • java的学习笔记

    判断java字符数组里下标i的数是否为字母

       Character.isLetter(数组名[i]);

    判断java字符数组里下标i的数是否为数字:  

      Character.isDigit(数组名[i]);

    异常断点(如空指针异常):

      breakpoints->add java exception breakpoint 输入:NullPointerException

    使用断点三点建议:

    1. 不要使用System.out.println作为调试工具
    2. 把所有涉及到的组件日志级别激活并使用
    3. 使用日志分析器来读取日志

    java判等(equals 和 ‘==’):

      equals:以字符串为例:用来比较两个字符串是否相等,相等返回true,不等返回false。不用考虑两个变量在堆中 存放的不同位置。

      equals 不能用来判断数据类型的大小。

      '==':如果是通过new了一个实例String对象,那么这两个实例对象在堆中的位置是不同的,所以这两个对象用‘==’比较的返回值是false。

    java 正则表达式:

        正则基本用法:  单词边界    d 匹配一个数字字符 w 表示字符类(包括大小写字母,数字) s 空白字符 单词大写与意义相反之

    pattern类:

      Pattern类用于创建一个正则表达式,也可以说创建一个匹配模式,它的构造方法是私有的,不可以直接创建,

      但可以通过Pattern.complie(String regex)简单工厂方法创建一个正则表达式,    

      Pattern p=Pattern.compile("\w+");

      p.pattern();//返回 w+

      Pattern.split(CharSequence input)方法,用于分隔字符串,并返回一个String[]

      Pattern p=Pattern.compile("\d+");

      String[] str=p.split("我的QQ是:456456我的电话是:0532214我的邮箱是:aaa@aaa.com");
      结果:str[0]="我的QQ是:" str[1]="我的电话是:" str[2]="我的邮箱是:aaa@aaa.com"

      Pattern.matcher(String regex,CharSequence input)是一个静态方法,用于快速匹配字符串,该方法适合用于只匹配一次,且匹配全部字符串.    

      Pattern.matches("\d+","2223");//返回true

      Pattern.matches("\d+","2223aa");//返回false,需要匹配到所有字符串才能返回true,这里aa不能匹配到

      Pattern.matches("\d+","22bb23");//返回false,需要匹配到所有字符串才能返回true,这里bb不能匹配到
          
    matches类:
      Pattern.matcher(CharSequence input)返回一个Matcher对象.
      Matcher类的构造方法也是私有的,不能随意创建,只能通过Pattern.matcher(CharSequence input)方法得到该类的实例.必须实例化
      Pattern p=Pattern.compile("\d+");

      Matcher m=p.matcher("22bb23");

      m.pattern();//返回p 也就是返回该Matcher对象是由哪个Pattern对象的创建的
      Integer类中有静态方法toBinaryString(int i)方法,此方法返回int变量的二进制表示的字符串

      同理,Integer类中也提供了toHexString(int i)方法和toOctalString(int i)方法来分别返回int变量的16进制表示和8进制表示字符串.

    堆栈理解:     

      栈:一些基本类型的变量和对象的引用变量都是在函数的栈内存中分配

      堆: 堆内存用于存放由new创建的对象和数组

      按照编译原理的观点,程序运行时的内存分配有三种策略,分别是静态的,栈式的,·和堆式的. 

      从堆和栈的功能和作用来通俗的比较,堆主要用来存放对象的,栈主要是用来执行程序的.

      从Java的这种分配机制来看,堆栈又可以这样理解:堆栈(Stack)是操作系统在建立某个进程时或者线程(在支持多线程的操作系统中是线程)

      为这个线程建立的存储区域,该区域具有先进后出的特性。 

      栈的优势是,存取速度比堆要快,仅次于寄存器,栈数据可以共享。但缺点是,存在栈中的数据大小与生存期必须是确定的,

      缺乏灵活性。栈中主要存放一些基本类型的变量(,int, short, long, byte, float, double, boolean, char)和对象句柄。 

     线程:

          线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。线程自己基本上不拥有系统资源,

      只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),但是它可与同属一个进程的其他的线程共享进程所拥有的全部资源。

    什么时候使用多线程?     

      当多个任务可以并行执行时,可以为每个任务启动一个线程。

    java io流的概念:

      把流理解成一个中间介质,所谓的input和out是针对这个介质来说的,input是进入这个介质,out是这个介质输出。

      流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象。即数据在两设备间的传输称为流,流的本质是数据传输,

      根据数据传输特性将流抽象为各种类,方便更直观的进行数据操作。

    举个例子:

      比如你家的水龙头的管道就是一个流:流又分为输入输出流,输入流就是你家水龙头抽水库水的那头

       (FileInputStream:将水抽到管道里面),输出流就是你家水龙头流到你家大水缸的那头(FileOutputStream:将水流到缸里)。

      现在有个A.txt文件,你要读取里面的信息,就相当于水龙头抽水库水到管道(FileInputStream),然后读取完后写入到另一个文件

      里面(FileOutputStream),就是相当于水龙头将抽到水后流到大水缸。

    处理纯文本数据,就优先考虑使用字符流。 除此之外都使用字节流。

    io流的分类:

      根据处理数据类型的不同分为:字符流和字节流

      根据数据流向不同分为:输入流和输出流

           对io流详细理解:http://blog.csdn.net/zhaoyanjun6/article/details/54292148

    集合类:

      Collection接口是集合类的根接口,Java中没有提供这个接口的直接的实现类。但是却让其被继承产生了两个接口,就是Set和List。

      Set中不能包含重复的元素。List是一个有序的集合,可以包含重复的元素,提供了按索引访问的方式。

      Map是Java.util包中的另一个接口,它和Collection接口没有关系,是相互独立的,但是都属于集合类的一部分。Map包含了key-value对。

      Map不能包含重复的key,但是可以包含相同的value。

    Iterator,所有的集合类,都实现了Iterator接口,这是一个用于遍历集合中元素的接口,主要包含以下三种方法:
      1.hasNext()是否还有下一个元素。
      2.next()返回下一个元素。
      3.remove()删除当前元素。

    For-Each循环:

          For-Each循环也叫增强型的for循环,或者叫foreach循环。

       For-Each循环是JDK5.0的新特性(其他新特性比如泛型、自动装箱等)。

       For-Each循环的加入简化了集合的遍历。

    规则:

         for(type element: array)

      {

            System.out.println(element);

      }

    pojo:

      具有一部分getter/setter方法的那种类就可以称作POJO

    JavaBean可分为两种:

      一种是有用户界面(UI,User Interface)的JavaBean;

      还有一种是没有用户界面,主要负责处理事务(如数据运算,操纵数据库)的JavaBean。

      JSP通常访问的是后一种JavaBean。

    Integer和int的区别:

      1、Integer是int提供的封装类,而int是Java的基本数据类型;
      2、Integer默认值是null,而int默认值是0;
      3、声明为Integer的变量需要实例化,而声明为int的变量不需要实例化;
      4、Integer是对象,用一个引用指向这个对象,而int是基本类型,直接存储数值。 

  • 相关阅读:
    jdk1.5线程知识列表
    linux 常用命令记录
    spring batch 编码问题
    maven
    统计文本中每个单词出现的次数
    生成优惠券,并将优惠券存入Mysql
    python 2.7版本解决TypeError: 'encoding' is an invalid keyword argument for this function
    CSRF verification failed. Request aborted. 表单提交方法为POST时的报错
    InsecureRequestWarning: Unverified HTTPS request is being made.解决方法
    SQL Server 打印九九乘法表
  • 原文地址:https://www.cnblogs.com/yangkang0202/p/7966519.html
Copyright © 2011-2022 走看看