学习笔记 --Java

本贴最后更新于 3028 天前,其中的信息可能已经时移世异

//输入输出

Scanner in = new Scanner(System.in);

int a = in.nextInt();

int b = in.next();

System.out.println(in.nextLine());

//输入流 InputStream

System.in.read(buffer); //读取输入流存到 buffer(byte[]类型)中

System.in.read(); //读一个字节,若结尾返回-1

System.in.read(buffer, int off, int len); // 读 len 个字节,从 buffer[off]开始存

System.in.skip(n); //输入流跳过 n 个字节

System.in.available();

System.in.mark(); //标记

System.in.reset(); //返回标记处

System.in.markSupported; //是否支持标记

System.in.close(); //关闭输入流

//类 java.io.StreamTokenizer 可以获取输入流并将其分析为 Token(标记)。StreamTokenizer 的 nextToken 方法将读取下一个标记,下一个标记的类型在 ttype 字段中返回。关于令牌的附加信息可能是在 nval 字段或标记生成器的 sval 字段,结束标志为 TT_EOF。

StreamTokenizer st = new StreamTokenizer(new BufferedReader(new InputStreamReader(System.in)));

st.nextToken();

int m=(int)st.nval;

//输出流 OutputStream

System.out.write(int b);

System.out.write(byte[] b);

System.out.write(byte[] b, int off, int len);

System.out.flush();

System.out.close();

//文件流

//二进制数据读写(字节流)

FileOutputStream out = new FileOutputStream("a.txt"); //根据字节读写数据

out.write(buffer);

out.close();

FileInputStream in = new FileInputStream("a.txt");

in.read();

in.close();

DataOutputStream out = new DataOutputStream(

new BufferedOutputStream( new FileOutputStream("a.txt"))); //读写基本类型数据

out.writeInt(int a);

DataInputStream in = new DataInputStream(

new BufferedInputStream( new FileInputStream("a.txt")));

in.readInt();

//文本数据读写(字符流)

PrintWriter out = new PrintWriter(

new BufferedWriter( new OutputStreamWriter( new FileOutputStream("a.txt")))); //输出文本数据

out.println("abcdefg");

out.format("格式",...);

out.printf("格式", ...);

out.print(基本类型);

BufferedReader in = new BufferedReader(

new InputStreamReader( new FileInputStream("a.txt"))); //读文本数据

String line = in.readLine();

in.getLineNumber();

FileReader in = new FileReader(String fileName); //在给定从中读取数据的文件名的情况下新建 FileReader

FileReader in = new FileReader(File file); //在给定从中读取数据的 File 的情况下新建 FileReader

//转换编码

InputStreamReader(InputStream in, String charsetName); //创建使用指定字符集的 InputStreamReader

//网络端口连接读写数据

Socket socket = new Socket(InetAddress.getByName("localhost"), 12345); //建立与本地 12345 端口的连接

PrintWriter out = new PrintWriter(

new BufferedWriter( new OutputStreamWriter( socket.getOutputStream()))); //建立对socket的输出流

//读写对象

class Student implements Serializable {

...

} //类实现 Serializable 串行化接口

ObjectOutputStream out = new ObjectOutputStream(

new FileOutputStream("a.dat")); //对象输出流

out.writeObject(Student stu1);

ObjectInputStream in = new ObjectInputStream(

new FileInputStream("a.dat"); //对象输入流

out.readObject(Student stu2);

//字符串操作

String s = new String();

s.equals("abc");

s1.compareTo(s2);

s.substring(n);

s.substring(n1, n2);

s.charAt(index);

s.indexOf(c);

s.indexOf(c, n);

s.indexOf(t); //也可以寻找字符串位置

s.lastIndexOf(c); //从右边开始找

s.startsWith(t); //是否由字符串 t 开始

s.endsWith(t); //是否由字符串 t 结尾

s.trim(); //把字符串两端的空格删掉

s.replace(c1, c2); //把 s 中所有的 c1 都换成 c2

s.toLowerCase(); //把 s 中所有的大写字母换成小写字母

s.toUpperCase(); //把 s 中所有的小写字母换成大写字母

s.split(" "); //按某个字符(比如空格)将字符串提取出来

StringBuffer sb = new StringBuffer(); //用作字符串缓存器

StringBuilder sb = new StringBuilder(); //与 StringBuffer 相似,没有实现线程安全功能

sb.append(""); //增加一个字符串

sb.insert(n, ""); //插入字符串

sb.toString(); //转换成字符串

String.format("Hello, %s. Next year, you'll be %d", name, age); //格式化字符串

//Java 中的包装类

Integer 类的常用方法:

byteValue() //将 Integer 转换为 byte 类型

doubleValue() //将 Integer 转换为 double 类型

...

基本类型转换为字符串:

Integer.toString(int n) //转换为字符串类型

String.valueOf(int n) //int 类型转换为字符串类型

字符串转换为基本类型:

Integer.parseInt(Stirng s) //将字符串转换为 int 类型

Integer.valueOf(String s) //将字符串转换为 Integer 类型

//时间类

Date d = new Date(); //java.util 包中,默认无参构建当前时间

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); //java.text 包中,创建目标格式对象

String today = sdf.format(d); //将时间格式化为指定格式

Date date = sdf.parse(today); //将字符串按指定格式转化为时间


Calendar c = Calendar.getInstance(); //java.util.Calendar,创建 Calendar 对象,初始化为当前时间

int year = c.get(Calendar.YEAR);

int month = c.get(Calendar.MONTH)+1; //0 表示 1 月份

int day = c.get(Calendar.DAY_OF_MONTH);

int hour = c.get(Calendar.HOUR_OF_DAY);

int minute = c.get(Calendar.MINUTE);

int second = c.get(Calendar.SECOND);

Date date = c.getTime(); //Date 和 Calendar 类互转

Long time = c.getTimeInMillis(); //获取当前毫秒数

//数学函数

Math.abs(a); // java.lang 包,求绝对值

Math.pow(a); //指数运算

Math.random(); //产生从 0 到 1 间的随机数

Math.round(a); //求近似

Math.floor(); //返回小于参数的最大整数

Math.ceil(); //返回大于参数的最小整数

//集合

//容器类

Collection 接口,子接口有 Set,List,Queue,实现类有 ArrayList, LinkedList, HashSet

Map 接口,实现类有 HashMap


ArrayList list = new ArrayList(); //定义 ArrayList 容器,ArrayList 是 List 接口的一个实现类,List 是 Collection 的子接口

list.add(s); //增加元素

list.add(n, s); //在位置 n 上插入元素

list.addAll(Array.asList(array)); //将数组转换为 list 并添加到 list 中

list.addAll(n, Array.asList(array)); //插入到指定位置

list.remove(s); //删除指定元素或指定位置元素

list.removeAll(Array.asList(array)); //删除 list 中指定的元素集合

list.set(n, s); //修改 n 位置的元素为 s

list.size(); //返回大小

Iterator it = list.iterator(); //获取 list 的迭代器

it.hasNext(); //判断迭代器是否有下一个元素

it.Next(); //利用迭代器获取下一个元素

//HashMap 散列表

HashMap coinnames = new HashMap();

coinnames.put(1, "penny"); //放进键值对

coinnames.get(1); //返回键 1 对应的值

coinnames.containsKey(1); //是否包含某键

coinnames.keySet(); //返回键的集合

//图形界面包

import javax.swing.JFrame; //图形窗口

import javax.swing.JPanel; //图形面板

import javax.swing.JButton; //图形按钮

import java.awt.Color; //颜色设置

import java.awt.Graphics; //绘制图像

import java.awt.BorderLayout; //组件布局管理

import java.awt.event.ActionEvent; //事件处理

import java.awt.event.ActionListener; //事件监听

import javax.swing.JScrollPane; //滚动面板

import javax.swing.JTable; //图形表格

import javax.swing.table.TableModel; //表格的数据模型接口

  • Java

    Java 是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由 Sun Microsystems 公司于 1995 年 5 月推出的。Java 技术具有卓越的通用性、高效性、平台移植性和安全性。

    3203 引用 • 8217 回帖 • 1 关注

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...

推荐标签 标签

  • 以太坊

    以太坊(Ethereum)并不是一个机构,而是一款能够在区块链上实现智能合约、开源的底层系统。以太坊是一个平台和一种编程语言 Solidity,使开发人员能够建立和发布下一代去中心化应用。 以太坊可以用来编程、分散、担保和交易任何事物:投票、域名、金融交易所、众筹、公司管理、合同和知识产权等等。

    34 引用 • 367 回帖 • 1 关注
  • 反馈

    Communication channel for makers and users.

    120 引用 • 906 回帖 • 280 关注
  • Openfire

    Openfire 是开源的、基于可拓展通讯和表示协议 (XMPP)、采用 Java 编程语言开发的实时协作服务器。Openfire 的效率很高,单台服务器可支持上万并发用户。

    6 引用 • 7 回帖 • 119 关注
  • Latke

    Latke 是一款以 JSON 为主的 Java Web 框架。

    71 引用 • 535 回帖 • 831 关注
  • TGIF

    Thank God It's Friday! 感谢老天,总算到星期五啦!

    292 引用 • 4495 回帖 • 664 关注
  • 心情

    心是产生任何想法的源泉,心本体会陷入到对自己本体不能理解的状态中,因为心能产生任何想法,不能分出对错,不能分出自己。

    59 引用 • 369 回帖 • 1 关注
  • OpenShift

    红帽提供的 PaaS 云,支持多种编程语言,为开发人员提供了更为灵活的框架、存储选择。

    14 引用 • 20 回帖 • 665 关注
  • 星云链

    星云链是一个开源公链,业内简单的将其称为区块链上的谷歌。其实它不仅仅是区块链搜索引擎,一个公链的所有功能,它基本都有,比如你可以用它来开发部署你的去中心化的 APP,你可以在上面编写智能合约,发送交易等等。3 分钟快速接入星云链 (NAS) 测试网

    3 引用 • 16 回帖 • 1 关注
  • QQ

    1999 年 2 月腾讯正式推出“腾讯 QQ”,在线用户由 1999 年的 2 人(马化腾和张志东)到现在已经发展到上亿用户了,在线人数超过一亿,是目前使用最广泛的聊天软件之一。

    45 引用 • 557 回帖
  • CSDN

    CSDN (Chinese Software Developer Network) 创立于 1999 年,是中国的 IT 社区和服务平台,为中国的软件开发者和 IT 从业者提供知识传播、职业发展、软件开发等全生命周期服务,满足他们在职业发展中学习及共享知识和信息、建立职业发展社交圈、通过软件开发实现技术商业化等刚性需求。

    14 引用 • 155 回帖 • 1 关注
  • 创业

    你比 99% 的人都优秀么?

    81 引用 • 1395 回帖 • 1 关注
  • SOHO

    为成为自由职业者在家办公而努力吧!

    7 引用 • 55 回帖
  • 强迫症

    强迫症(OCD)属于焦虑障碍的一种类型,是一组以强迫思维和强迫行为为主要临床表现的神经精神疾病,其特点为有意识的强迫和反强迫并存,一些毫无意义、甚至违背自己意愿的想法或冲动反反复复侵入患者的日常生活。

    15 引用 • 161 回帖 • 2 关注
  • Kubernetes

    Kubernetes 是 Google 开源的一个容器编排引擎,它支持自动化部署、大规模可伸缩、应用容器化管理。

    118 引用 • 54 回帖 • 11 关注
  • Gzip

    gzip (GNU zip)是 GNU 自由软件的文件压缩程序。我们在 Linux 中经常会用到后缀为 .gz 的文件,它们就是 Gzip 格式的。现今已经成为互联网上使用非常普遍的一种数据压缩格式,或者说一种文件格式。

    9 引用 • 12 回帖 • 184 关注
  • SpaceVim

    SpaceVim 是一个社区驱动的模块化 vim/neovim 配置集合,以模块的方式组织管理插件以
    及相关配置,为不同的语言开发量身定制了相关的开发模块,该模块提供代码自动补全,
    语法检查、格式化、调试、REPL 等特性。用户仅需载入相关语言的模块即可得到一个开箱
    即用的 Vim-IDE。

    3 引用 • 31 回帖 • 112 关注
  • 正则表达式

    正则表达式(Regular Expression)使用单个字符串来描述、匹配一系列遵循某个句法规则的字符串。

    31 引用 • 94 回帖 • 1 关注
  • Sublime

    Sublime Text 是一款可以用来写代码、写文章的文本编辑器。支持代码高亮、自动完成,还支持通过插件进行扩展。

    10 引用 • 5 回帖 • 4 关注
  • jsoup

    jsoup 是一款 Java 的 HTML 解析器,可直接解析某个 URL 地址、HTML 文本内容。它提供了一套非常省力的 API,可通过 DOM,CSS 以及类似于 jQuery 的操作方法来取出和操作数据。

    6 引用 • 1 回帖 • 500 关注
  • Kafka

    Kafka 是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者规模的网站中的所有动作流数据。 这种动作(网页浏览,搜索和其他用户的行动)是现代系统中许多功能的基础。 这些数据通常是由于吞吐量的要求而通过处理日志和日志聚合来解决。

    36 引用 • 35 回帖
  • 深度学习

    深度学习(Deep Learning)是机器学习的分支,是一种试图使用包含复杂结构或由多重非线性变换构成的多个处理层对数据进行高层抽象的算法。

    43 引用 • 44 回帖
  • BAE

    百度应用引擎(Baidu App Engine)提供了 PHP、Java、Python 的执行环境,以及云存储、消息服务、云数据库等全面的云服务。它可以让开发者实现自动地部署和管理应用,并且提供动态扩容和负载均衡的运行环境,让开发者不用考虑高成本的运维工作,只需专注于业务逻辑,大大降低了开发者学习和迁移的成本。

    19 引用 • 75 回帖 • 683 关注
  • C++

    C++ 是在 C 语言的基础上开发的一种通用编程语言,应用广泛。C++ 支持多种编程范式,面向对象编程、泛型编程和过程化编程。

    108 引用 • 153 回帖
  • Shell

    Shell 脚本与 Windows/Dos 下的批处理相似,也就是用各类命令预先放入到一个文件中,方便一次性执行的一个程序文件,主要是方便管理员进行设置或者管理用的。但是它比 Windows 下的批处理更强大,比用其他编程程序编辑的程序效率更高,因为它使用了 Linux/Unix 下的命令。

    125 引用 • 74 回帖
  • Git

    Git 是 Linux Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。

    211 引用 • 358 回帖
  • Android

    Android 是一种以 Linux 为基础的开放源码操作系统,主要使用于便携设备。2005 年由 Google 收购注资,并拉拢多家制造商组成开放手机联盟开发改良,逐渐扩展到到平板电脑及其他领域上。

    337 引用 • 324 回帖
  • OpenCV
    15 引用 • 36 回帖