首页 > 编程语言 >java期末

java期末

时间:2022-11-21 22:34:20浏览次数:59  
标签:java String int StringBuffer System 期末 str 字符串

java知识

1.Javac.exe java.exe javap.exe javadoc.exe的含义和用法; Javac A.java java A Javap? Javadoc?

javac.exe 是编译程序,用于编译.java文件

java.exe 是执行程序,用于执行编译好的.class文件

javadoc.exe 是JAVA文档工具,用于生成Java说明文档

jdb.exe 是调试器,用于调试JAVA代码

javaprof.exe 是剖析工具

 

2.Java的输入和输出:scanner: hasNext(),nextlnt(),...; print println printf("%d",10)的类对象和方法;

输入:

scanner:

public class scanner {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in); //生成scanner对象
        System.out.print("请输入你的姓名:");
        String name = sc.nextLine();//输入字符串
        System.out.print("请输入你的年龄:");
        int age = sc.nextInt();//输入整数
        System.out.println("姓名:" + name +"\n" +"年龄:" + age);
    }
}

nextInt() 输入整数
nextLine() 输入字符串
nextDouble() 输入双精度数
next() 输入字符串(以空格作为分隔符

 

JOptionPane

io.Console

import java.io.Console;//导入java.io.Console
public class User {
    public static void main(String[] args) {
        Console con = System.console();//建立安全输入
        String name = con.readLine("请输入账号:");
        String passworld = con.readLine("请输入密码:");
        System.out.printf("账号:%s", name);
        System.out.printf("%n密码:%s", passworld);
    }
}

 

 

输出:

System.out.print() 不换行直接输出

public class User {
    public static void main(String[] args) {
    int a = 1;
    int b = 2;
    System.out.print(a);//print()不换行输出a的值
    System.out.print(b);//print()不换行输出b的值
    }
}

 

System.out.println() 换行输出

public class User {
    public static void main(String[] args) {
    int a = 1;
    int b = 2;
    System.out.println(a);//println()换行输出a的值
    System.out.println(b);//println()换行输出b的值
    }
}

 

System.out.printf() 格式化输出

public class User {
    public static void main(String[] args) {
    int a = 1;
    int b = 2;
    System.out.printf("a=%d%n",a);//printf()格式化输出
    System.out.printf("b=%d",b);//printf()格式化输出
    }
}

 

 

3.String 的定义方法、=或new(区别);注意格式;string  stringbuffer的定义;2个类的区别和转换方法。区别。赋值或定义方法。常用方法的含义。

2个类常用方法有哪些,对比区别。上网查详细。 Insert  replace  append  chatAt  setCharAt

String ->stringbuffer  转换方法.toString()  (strngbuffer(string 对象))stringBuffer - > string

S1=”abcd” s2=”abcd”  s3=new String(“abcd”)  s4=new String(“abcd”)

=后面是常量  new后面是堆空间

 

String:
1.String创建的对象是不可变的,一旦创建不可改变
2.对象值可以改变其实是创建了一个新的对象,然后把新的值保存进去(如图1)
3.String类被final修饰,不可以被继承
4.String创建的对象的值存在于常量池,不用的时候不会被销毁
5.String运行时间较长
6.String适用于比较短而小的字符串

 

StringBuffer:
1.StringBuffer创建的对象是可变的
2.它的改变不像String那样重新创建对象,而是通过构造方法(如图2)
3.StringBuffer创建的对象的值存在于栈区,不用的时候会被销毁
4.StringBuffer运行时间较短
5.StringBuffer适用于比较长的字符串、比较多的字符串

 

StringBuffer --> String

1、构造   String str1 = new String(stringBuffer);

2、toString  String str2 = stringBuffer.toString();

 

String ---> StringBuffer

1、构造  StringBuffer stringBuffer1 = new StringBuffer(str);

2、append   StringBuffer stringBuffer2 = new StringBuffer();  stringBuffer2.append(str);

 

String类常用方法

1.获取:
        1)获取字符串str长度
                int i = str.length();
        2)根据位置(index)获取字符
                char  c = str.charAt(index);
        3)获取字符在字符串中的位置
                int i =str.indexOf(char ch);  //获取的是第一次出现的位置
                int i =str.indexOf(char ch ,int index);  //从位置index后获取ch出现的第一次的位置
                int  i =str.indexOf(str1) ;// 获取str1 在str 第一次出现的位置
                int i=str.indexOf(str1, index0);//获取从index位置后str第一次出现的位置
                int i = str.lastIndexOf(ch或者 str1)  //获取ch或者str1最后出现的位置
 
2.判断
        1)判断是否以指定字符串str1开头、结尾
                boolean b = str.startWith(str1)  //开头
                boolean b = str.endsWith(str1) //结尾
        2)判断是否包含某一子串
                boolean b = str.contains(str1)
        3)判断字符串是否有内容
                boolean b = str.isEmpty();
        4)忽略大小写判断字符串是否相同
                boolean b = str.equalsIgnoreCase(str1);
 
3.转换
        1)将字符数组 -char[] ch- 转化成字符串
            i.  String str =new String(ch); //将整个数组变成字符串
            ii. String str =new String(ch,offset,count)
    //将字符数组中的offset位置之后的count个元素转换成字符串  
            1. String str =String.valueOf(ch);
            2. String str =String.copyValueOf(ch,offset,count);
            3. String str =String.copyValueOf(ch);
        2)将字符串转化为字符数组
            char[] ch = str.toCharAarray();
        3)将字节数组转换为字符串
            同上1) 传入类型变为Byte[];
        4)将字符串转换为字节数组
            Byte[] b = str.toByteArray();
        5)将基本数据类型装换成字符串
            String str = String.valueOf(基本数据类型数据);
            若是整形数据可以用 字符串连接符 + "" 
            eg :  String  str = 5+"";
            得到字符串 “5”   
 
4.替换   replace();
        str.replace(oldchar,newchar)//将str里oldchar变为newchar
        str.replace(str1,str2)//将str中str1,变为str2
 
5.切割   split();
        String[]  str1 = str.split(","); //将str用 ","分割成String数组
 
6.子串
        String s = str.substring(begin);
        // s 为 str 从begin位置到最后的字符串
        String s = str.substring(begin,end)
        //s 是 str 从begin 位置到end 位置的字符串
 
7.转换大小写:
        String s1 = str. toUpperCase(); //将str变成大写字母
        String s2 = str. toLowerCase(); //将str变成小写字母
    除去空格:
        String s =str.trim();
    比较:
        int i = str.compareTo(str1);

 

StringBuffer常用方法

   /***StringBuffer        是一个容器,长度可变,可以直接操作字符串,用toString方法变为字符串 **/
1.存储
        1)append(); //将指定数据加在容器末尾,返回值也是StringBuffer
        eg:
        StringBuffer sb = new StringBuffer(//可以加str);
        StringBuffer sb1=ab.append(数据) //数据可以任何基本数据类型
    注:此时sb == sb1他们是同一对象,意思是可以不用新建sb1直接 sb.append(数据) 使用时之后接使用sb

 

2)insert();// 插入
    sb.insert(index ,数据);


2.删除
        sb.delete(start ,end);  //删除start到end的字符内容
//注意:这里的所有包含index的操作都是含头不含尾的
        sb.deleteCharAt(index);//删除指定位置的字符
//清空StringBuffer缓冲区
        sb=new StringBuffer();
        sb.delete(0,sb.length());


3.获取
    char c = sb.charAt(index);//获取index上的字符
    int i = sb.indexOf(char)://获取char字符出现的第一次位置
    //与 String 中的获取方法一致参考前面
 
4.修改                  String类中无次操作方法
    sb =sb.replace(start,end,string)//将从start开始到end的字符串替换为string;
    sb.setCharAr(index ,char);//将index位置的字符变为新的char
 
5.反转     sb.reverse();//将sb倒序


6. getChars(int srcBegin,int srcEnd,char[] ch,int chBegin)
//将StringBuffer缓冲区中的指定数据存储到指定数组中

 

 

4.a和A、0的ascii码值多少。a97  A65  048

 

5.数组的length是方法还是属性  a.length    a[i].length(不规则变长数组)   属性

数组具有  length  属性   用     数组变量名.length    可获得数组长度。
int[]  arr  =  new int[8];
		int    lengthInt=arr.length;   //获得数组长度
		System.out.println(lengthInt); //  打印结果8
		
字符串(String)具有 length()方法  

		String  str  = "abcdefg";
		int    lengthStr = str.length();  //获得字符串长度
		System.out.println(lengthStr);    //  打印结果7

字符串(String)  底层实现时  利用  char[]  value;   字符型数组
字符串(Stingth)  中 length()方法源码:
 public int length() {
        return value.length;
    }
    
同样基于数组的   length  属性。

创建字符串数组时,获得数组的长度也是要利用    数组length属性  
String[] strs  = {"香蕉","苹果","梨","西瓜","麻瓜"};
		int  lengthStrs =strs.length;
		System.out.println(lengthStrs);  //  数组长度为5

任何数组都有   length属性   访问长度时用    .length

 

6.final的字义是终极,修饰类\方法\变量,及含义,

final关键字可以修饰类、方法、变量,当final修饰类、方法、变量时,分别表示: 类不可被继承;方法不能被重写;变量值不能被更改

final类

final修饰的类不能被继承,即不能有子类。当子类继承父类时,将可以直接访问到父类内部数据,这可能会导致一些安全问题。为了保证一个类不可被继承,可以使用final来修饰类。

 

final方法

final修饰的方法不可被重写,如果不希望子类重写父类的某个方法,则使用final修饰该方法
注:final修饰的方法不能被重写,能被重载。

 

final变量
final修饰的变量一旦获得了初始值就不可被改变,final修饰的变量必须由程序员显示地指定初始值,系统不会对final成员进行隐式初始化。


final修饰的类变量和实例变量能指定初始值的地方如下:
(1)final类变量(static修饰的变量):

在静态初始化块中指定初始值
声明该变量时指定初始值
注:以上两个只需满足其中之一,不能同时指定


(2)final实例变量

在非静态初始化块中指定初始值
声明该实例变量时指定初始值
构造器中指定初始值
注:以上三个只需满足其中之一,不能同时指定

 

7.Swing界面问题:布局方式有哪些,默认布局Flowayout; Border、Grid、Card,null含义。键盘时间shift/ctrl+F/N如何判断及实现?(是否按下)

1、 边界布局(BorderLayout)
2、流式布局(FlowLayout)
3、网格布局(GridLayout)
4、盒子布局(BoxLaYout)
5、空布局(null)

还有其他两种布局,分别是GridBagLayout(网格包布局)、CardLayout(卡片布局)

注意:JFrame和JDialog默认布局为BorderLayout,JPanel和Applet默认布局为FlowLayout

 

OnKeyDown事件:

procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); 
begin 
  if Shift>=[ssShift] then  //如果按下了Shift键则在第一个面板上显示Shift}
    StatusBar1.Panels[0].Text:= 'Shift'; 
 
  if Shift>=[ssAlt] then //如果按下了Alt键则在第二个面板上显示Alt} 
    StatusBar1.Panels[1].Text:= 'Alt'; 
 
  if Shift>=[ssCtrl] then //如果按下了C t r l 键则在第三个面板上显示Ctrl}
    StatusBar1.Panels[2].Text:= 'Ctrl'; 
 
 end;

 

8.try-catch-finally:try有,catch必有,finally可选。finally如有必执行一次。catch中的父子关系的异常类的前后放置位置.  子前父后,Exception放最后

 

9.IO流式读写:

InputStream和outputStream是字节流、Reader和Writer是字符流。基础类是FilelnputStream和FileReader,  BufferReader、BufferlnputStream、DataXXXX,ObjectXXX等是高级读类,必须通过基础类才能访问到文件,不能直接访问文件。

Readline(); writer(); newLine();

 

10.线程常用方法:start、sleep、notify、wake、join作用等。同步锁的作用。

Synchronized,lock,run线程体方法

 

11.socket编程:客户端、服务端发送和接受信息的函数有哪些?UDP tcp区别,Socket类和ServerSocket类区别。 UDP编程用到哪些类和方法

 

12.JDBC:

驱动加载语句Class.forName()、连接语句Connection getConnection(“jdbc:mysql//locaohhost:3306?databasename”,username,passwod)、查询和执行。PreparedStatement类的作用,与Statement比较有什么优点?防止sql注入?

参数化、+连接:

 

13.package import class类,public主类/非主类的含义和书写次序。

 

14.正则表达式:电话号码:手机、固话、数字串取出、分割的正则式。Split, \d, \w +*?

 

15.JDK包含了JDK和JRE的含义,编译和运行都需要这2个包 吗?

 

16.java的四种权限,及访问权限。Public protected 友好 private,访问规则

 

17.对象变量、类变量、对象方法(所有)、类方法(类变量)的互访规则。构造函数(所有)

 

18.重载:条件(形参 个数类型不同);重写:条件(函数原型完全一致,目的是多态和回调;

 

19.接口:成员有哪2种 ;抽象类:new? 错误,抽象方法。

 

20.数组:不规则数据,列如何访问?

 

21.Java:单继承,多接口; 模式对话框、JFrame显示哪个方法,.visible(),执行之后窗体才可显示,一般放在最后

 

 

 

 

22.try-catch书写,算术异常,数组异堂,书上例子

 

22.模式匹配(正则表达式)子串匹配、完全匹配

 

23.数据库编程

 

24.图形 : 点、线、圆形、矩形; 继承派生  点距离,圆距离,

 

25.split分割函数、

1)文件读写: BufferReadr:读取 readline()

2)行àsplit分割,正则表达式,à单词,

3)算术运算 1+1=  2+3=

 

26.多线程 : thread类 Runnable接口实现。Run方法体中写程序或调用方法实现功能。同步synchronized修饰成程序块或方法,或者用锁机制。

线程1、线程2:保证线程1输出后线程2才输出,后面继续保持这个规则;12 12 12 输出n次数,over

 

标签:java,String,int,StringBuffer,System,期末,str,字符串
From: https://www.cnblogs.com/wxk1213/p/16913603.html

相关文章