在19寒假对java基础进行自学,总结的笔记整理出来

====================================================

    排序查找

冒泡排序法
1.一共会比较数组元素个数-1 轮           //0到nums.length-1
2.每一轮,比较的次数比上次少1   //0到nums.length-i-1
3.如果前面一个数字大于后面一个数字 那么交换  //利用temp变量交换
选择排序(数组所有元素都与其之后的元素相比较 假设第i个值是最小值 i是下标)
1.先比较--数组元素--轮  //0到nums.length
2.再进行循环 i到最后    进行----数组元素-i-1---次   //i+1到nums.length 
3.每次循环,交换i的值和minIndex的值
sort排序(此方法效率最高)
Arrays.sort(nums);    //nums为数组 (可排列所有类型*需导入头文件*)
二分法查找(查找key是否在数组a[i]中 min-下限 mid-中间元素下标 high-上限 mid=(min+high)/2 )
1.不停循环直到找到 将key与a[i]中间元素比较
case1 若key小于中间元素 继续在数组前半元素中查找       //if(key<a[mid]) high=mid-1; mid=(min+high)/2 ; 重复1
case2 若key大于中间元素 继续在数组后半元素中查找               //if(key>a[mid]) min=mid+1; mid=(min+high)/2 ; 重复1
case3 若key等于中间元素 找到并退出循环        //if(key=a[mid]) break;
2.Collections.binarySearch();          //直接运用代码使用二分法
 
 
@@总结:sort排序(此方法效率最高)Arrays.sort(nums);  
======================================================
    获得当前日期与年份时间
 
Calendar cal=Calendar.getInstance();
System.out.println(cal.get(Calendar.YEAR);  //当前年份
(cal.get(Calendar.MONTH)+1);   //当前月份
cal.get(Calendar.DATE);    //当前日期
cal.get(Calendar.DAY_OF_WEEK));   //当前星期
MINUTTE ---------分钟
SECOND----------秒
hour---------------小时(12小时制
hour_of_day-------24小时制
day_of_week-------星期(从0开始  需要+1)
day_of_month------同DATE
day_of_year--------当前年的天数
AM_PM-------------0表示上午,1表示下午
 
cal.set(year,month,day,.....)    //为日历对象设定时间
Date date=cal.getTime();    //初始化date 需要加util包
System.out.println(date.toLocaleString());  //得到当前时间
 
 
=========================================================
    随机数
Math.random()    //[0.0,1.0)  0-1 之间小数
(int)(Math.random() * 10000 )%10         //[0,9]
(int)(Math.random() * 10000 )%13         //[0,12]
 
========================================================
    数学函数
Math.PI     //圆周率
Math.E     //e=2.71828
Math.sin(角度)    //正弦值 弧度
Math.cos(角度)    //余弦值 弧度
Math.tan(角度)    //正切值 弧度
Math.toRadians(degree)   //以角度为单位的值转换为弧度
Math.toDegrees(radians)   //以弧度为单位的值转换为角度
Math.asin(a)    //反正弦 角度
Math.acos(a)    //反余弦 角度
Math.atan(a)    //反正切 角度
Math.ceil(x)    //向上取整
Math.floor(x)    //向下取整
Math.round(x)    //四舍五入取整
Math.min/max    //返回两数最小/最大值
Math.pow(a,b)    //a的b次方
Math.abs     //取绝对值
 ====================================================
    StringBuffer与StringBuild
StringBuffer str1=new StringBuffer( ) ;
StringBuilder str2    //buffer安全于builder 但速度慢 主要用buffer
 
StringBuffer的用法
str1.append("*")    //在str1后加上*(运行效率比字符串+快)
str1.reverse( );    //反转字符串 
str1.insert(offset, all)    //插入在offset位置上all的内容(可char,数字,string)
str1.delete(2, 4)    //删除[2,4)
str1.deleteCharAt(index)   //删除位置上的一个字符
str1.replace(2,4,"123")   //将[2,4)替换成后面字符串123的内容
str1.setCharAt(index, ch);   //在将该位置的元素设置成char(char可设置为中文)
str1.setLength(0);    //清空字符串对象
@@总结:主要运用StringBuffer ,在文件中进行append操作
 
 
=================================================
  拆装箱
作用:能对常用类型进行方法操作
以下给出double与char示例:
  double-Double示例
double a=3.14
装箱
Double num1=new Double("3.14");  
Double num2=Double.valueOf(a);  //两种装箱方法
Double num3=3.14;   //自动装箱
拆箱
a=num1;     //自动拆箱
a=num2.doubleVaule();   //拆箱
Integer num1=100;    //两者数值相同时且位于定义范围内时 两者num相同
Integer num2=100;    
num1==num2
 
但超出范围(<-127||>128)
num1!=num2    //两者不等 因为两者超出范围后 系统重定义赋予地址
     //两次都超出 赋予地址不同 因此比较时比较地址不同
num1.compareTo(num2)   //此处比较两个数的数值 相等返回0 前大返回1 前小返回-1
 
  char-Character示例
判断char型字符------boolean
Character.isAlphabetic(ch);   //判断字符是否是字母
Character.isLetter(ch);   //判断字符是否是文字(字母或者汉字)
Character.isDigit(ch)   //判断字符是否是数字
Character.isLetterOrDigit(ch)   //判断字符是否只含文字或数字
 
===================================================
  文件IO流
File(path)  //用file类型直接打开文件
content.append(System.getProperty("line.separator"));//拼接一个系统默认分隔符
 
字节流
InputStream
OutputStream  //读/写byte型文件
子类
FileinputStream (file1)  
FileOutputStream (file1) //打开文件
ObjectInputStream  //对其目标文件进行强转成要得到的类型
ObjectOutputStream //序列化和反序列化(实现Serializable接口)
BufferedInputStream //缓存流包装
字符流
Reader
Writer   //打开文件
子类
BufferedWriter   //缓冲字符输出流用其write()方法写入字符串
BufferedReader
InputStreamReader
OutputStreamWriter
PrintWriter   //用append拼接字符串
子类
FileReader(path/file)  //字符流读取文件
FileWriter(path/file)   //写入文件
RandomAccessFile   //分块读取(用处大)
 
@@总结:以读取文件为例
两者都实例化后方可:
1.先用Reader/FileinputStream(上方红记号)打开文件后
2.再用其他子类去对文件修改
RandomAccessFile   //分块读取(用处大)
 
 
 
=================================================
  杂记
1.类型转换
char[] a= {'c','a','f'};    //字符数组
String str1=new String(a);   //将字符数组类型转换为字符串
char[] b;     
b=str1.toCharArray();   //将字符串转换为字符数组
 
2.忽视大小写 当answer为y或Y时为真1 反之其他为0
answer.equalsIgnoreCase("y")  
3.1970-1-1到现在的毫秒数
long time=System.currentTimeMillis();  
 
4.键盘输入
Scanner input=new Scanner(System.in) 
之后对input进行函数调用 需导入头文件
 
5.java选项面板类
JOptionPane.showInputDialog(null,str);  //将str以对话框的形式输出  (并在结尾输入 进行下一步)
JOptionPane.showMessageDialog(null, str); //将str以对话框的形式输出 
JOptionPane.showMessageDialog(null, "hello", "world", JOptionPane.WARNING_MESSAGE, new ImageIcon("路径"));
参数1 对话框父窗体对象
参数2 对话框的提示信息
参数3 对话框的标题信息
参数4 对话框的消息类型(警告标志 0=不填等)
参数5 对话框中显示的图片对象
JOptionPane.showInputDialog(null, message, title, messageType, icon, selectionValues, initialSelectionValue)
参数6 对话框输入/选项(添加数组)
参数7 在参数6对话框中初始的信息
 
6.闰年判断条件
 year % 400==0||year % 4==0 && year%100!=0
 
7.字符串截断
str.substring    //返回一个字符串,该字符串是此字符串的子字符串。 子字符串以指定索引处的字符开头,并扩展到该字符串的末尾。
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

java 笔记整理的更多相关文章

  1. java笔记整理

    Java 笔记整理 包含内容     Unix Java 基础, 数据库(Oracle jdbc Hibernate pl/sql), web, JSP, Struts, Ajax Spring, E ...

  2. Java笔记整理列表

    整理Java相关知识点. 2018-11-20 1:Java入门学习 2:Java进阶

  3. JAVA笔记整理(九),JAVA中的集合

    在工作中,我们经常需要将多个对象集中存放,可以使用数组,但是数组的长度一旦固定之后是不可变的,为了保存数量确定的数据,我们可以使用JAVA中的集合. 在我看来,JAVA中的集合可以看作是一个特殊的数据 ...

  4. JAVA笔记整理(六),JAVA中的多态

    JAVA引用变量有两个类型:一个是编译时类型,一个运行时类型 编译时类型由声明该变量时使用的类型决定,运行时类型由实际赋给该变量的对象决定.如果编译时类型和运行时类型不一样,就形成了多态. 因为子类其 ...

  5. JAVA笔记整理(三),JAVA中的类和方法

    类 类是JAVA中一个重要的概念,可以把类理解成一个对象的抽象,这个抽象的对象包含了变量(用来描述这个对象的属性)和方法(用来描述这个对象可以干什么),类中的各个成员之间可以相互调用(static修饰 ...

  6. JAVA笔记整理(四),JAVA中的封装

    什么是封装 所谓的封装就是把数据项和方法作为一个独立的整体隐藏在对象的内部,具体的实施细节不对外提现,仅仅保留有限的外部接口,封装外的用户只能通过接口来进行操作.就好比开启一台电脑需要进行很多个步骤, ...

  7. JAVA笔记整理(七),JAVA几个关键字

    本篇主要总结JAVA中的super.this.final.static.break.continue 1.super super主要用在继承当中,表示调用父类的构造函数. 1.如果要在子类方法中调用父 ...

  8. JAVA笔记整理(二),下载安装JDK

    Windows平台 1.登录Oracle官方网站(http://www.oracle.com/index.html),找到下载 2.选择要下载的版本,点击JDK DOWNLOAD 3.下载文件,先勾选 ...

  9. JAVA笔记整理(一),JAVA介绍

    JAVA语言的版本: J2SE(Java2 Platform Standard Edition,java平台标准版),后更名为:JAVA SE J2EE(Java 2 Platform,Enterpr ...

随机推荐

  1. 用纯js实现一个文本编辑器

    效果图 代码 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UT ...

  2. 2014.9.30 Double转字符

    (57.0/60.0).ToString("f2")="0.95" 等于 string.Format("{0:F2}",57.0/60)=& ...

  3. stm32下载程序,拔了调试器不能运行程序解决方案

    A:肯定是只拔了仿真器与电脑连接的那端,然后把另外端依然接在板子上.我说的没错吧 B: 对的,这样就会一直复位吗 这是复位的问题,当JLINK在板子上连接的时候,断电情况下,会一直把RESET拉低,导 ...

  4. 幂等性的含义和 HTTP请求方法的幂等性

    幂等性的含义和 HTTP请求方法的幂等性 1.什么是幂等性 =============== 幂等性,英文是idempotent,读作[aɪ'dɛmpətənt]. 它的含义如下: “Methods c ...

  5. Python基本数据类型之字符串、数字、布尔

     一.数据类型种类 Python中基本数据类型主要有以下几类: Number(数字) String(字符串) Bool (布尔) List(列表) Tuple(元组) Sets(集合) Diction ...

  6. Tornado 接口的实现

  7. 中国大学MOOC 玩转AutoCAD 熟悉AutoCAD的人机交互方式

  8. Gym 101128 B Black Vienna

    题意 有A-Z 26张牌,现在从中抽出3张牌,并把剩下的23张牌分给选手1和2,现在有n次询问,每次询问一个选手是否有某两张牌,和选手的回答.回答说自己有这两张牌中的几张,问拿出的三张牌有多少种方案能 ...

  9. spring框架 事务 注解配置方式

    user=LF password=LF jdbcUrl=jdbc:oracle:thin:@localhost:1521:orcl driverClass=oracle.jdbc.driver.Ora ...

  10. ROS indigo 删除和安装

    删除比较容易:  sudo apt-get remove ros-jade-desktop-full 但是如果怕删不干净可以采用: sudo apt-get remove ros-*  ,但是不确定会 ...