「Java」核心类
一. 字符串和编码1. String12String s1 = "Hello!";String s2 = new String(new char[] {'H', 'e', 'l', 'l', 'o', '!'});
1.1 字符串比较想比较字符串的内容是否相同。必须使用equals()方法而不能用==。
要忽略大小写比较,使用equalsIgnoreCase()方法。
1.2 子串12// 是否包含子串:"Hello".contains("ll"); // true
1234"Hello".indexOf("l"); // 2"Hello".lastIndexOf("l"); // 3"Hello".startsWith("He"); // true"Hel ...
「Java」面向对象基础(2)
静态字段和静态方法静态字段实例字段在每个实例中都有自己的一个独立“空间”,但是静态字段只有一个共享“空间”,所有实例都会共享该字段。 静态字段并不属于实例。 虽然实例可以访问静态字段,但是它们指向的其实都是Person class的静态字段。
在Java程序中,实例对象并没有静态字段。在代码中,实例对象能访问静态字段只是因为编译器可以根据实例类型自动转换为类名.静态字段来访问静态对象。
123456class Person { public String name; public int age; public static int number; // 静态字段}
静态方法调用实例方法必须通过一个实例变量,而调用静态方法则不需要实例变量,通过类名就可以调用。
1234567891011class Person { public static int number; public static void setNumber(int value) { // 静态方法 number = value; ...
「Java」面向对象 - 继承
创建类:
1234class Person { public String name; public int age;}
创建实例:
1Person ming = new Person(); // Person ming是定义Person类型的变量,而new Person()是创建Person实例
在OOP中,class和instance是“模版”和“实例”的关系;定义class就是定义了一种数据类型,对应的instance是这种数据类型的实例;
class定义的field,在每个instance都会拥有各自的field,且互不干扰;访问实例字段的方法是变量名.字段名;
通过new操作符创建新的instance,然后用变量指向它,即可通过变量来引用这个instance;指向instance的变量都是引用变量
方法一个类通过定义方法,就可以给外部代码暴露一些操作的接口,同时,内部自己保证逻辑一致性。
定义方法的语法是:
1234修饰符 方法返回类型 方法名(方法参数列表) { 若干方法语句; return 方法返回值; / ...
「Java」程序基础
程序基本结构因为Java是面向对象的语言,一个程序的基本单位就是class,class是关键字
123public class Hello { // 类名是Hello // ...} // class定义结束
类名要求:
类名必须以英文字母开头,后接字母,数字和下划线的组合
习惯以大写字母开头
在class内部,可以定义若干方法。方法定义了一组执行语句,方法内部的代码将会被依次顺序执行。
Java入口程序规定的方法必须是静态方法,方法名必须为main,括号内的参数必须是String数组。
方法命名要求:
首字母小写
Java的每一行语句必须以分号结束
注释:和c语言一样
还有一种特殊的多行注释,以/**开头,以*/结束,如果有多行,每行通常以星号开头:
12345678910/** * 可以用来自动创建文档的注释 * * @auther liaoxuefeng */public class Hello { public static void main(String[] args) { System. ...
「Java」背景 & 工具
背景詹姆斯·高斯林(高司令,人称Java之父)
Java介于编译型语言和解释型语言之间。编译型语言如C、C++,代码是直接编译成机器码执行,但是不同的平台(x86、ARM等)CPU的指令集不同,因此,需要编译出每一种平台的对应机器码。解释型语言如Python、Ruby可以由解释器直接加载源码然后运行,代价是运行效率太低。
而Java将代码编译成一种“字节码”,它类似于抽象的CPU指令,然后,针对不同平台编写虚拟机,不同平台的虚拟机负责加载字节码并执行。
为了保证不同平台、不同公司开发的虚拟机都能正确执行Java字节码,SUN公司制定了一系列的Java虚拟机规范。从实践的角度看,JVM的兼容性做得非常好,低版本的Java字节码完全可以正常运行在高版本的JVM上。
随着Java的发展,SUN给Java又分出了三个不同版本:
Java SE:Standard Edition
标准版,包含标准的JVM和标准库
Java EE:Enterprise Edition
企业版,它只是在Java SE的基础上加上了大量的API和库,以便方便开发Web应用、数据库、消息服务等。需 ...
proj-3-简易文本生成器
文本生成块 util.py
把纯文本分成一个一个的文本块,以便接下来对每一个文本块进行解析
12345678910111213141516171819202122232425262728293031323334'''处理 TXT 文本,创建返回文本块的生成器'''# 生成器函数,函数调用为生成器# 调用此函数时,file 参数一定是 IOWrapper 对象,IOWrapper 对象是迭代器对象# 该函数的作用是给文本文件的 IOWrapper 迭代器的末尾增加一个换行符def lines(file): """生成器,在文本最后加一空行 """ for line in file: yield line yield '\n'# 同上一个函数 lines ,它也是个生成器函数# 调用此函数时,file 参数一定是 IOWrapper 对象,IOWrapper 对象是迭代器对象# 函数的返回值是生成器,生成器的每 ...
1-js基础
JavaScript 使用一般使用外部脚本。如需使用外部脚本,请在 <script> 标签的 src (source) 属性中设置脚本的名称:
1<script src="myScript.js"></script>
JavaScript 输出JavaScript 能够以不同方式“显示”数据:
使用 window.alert() 写入警告框
使用 document.write() 写入 HTML 输出
使用 innerHTML 写入 HTML 元素
使用 console.log() 写入浏览器控制台
window.alert()
12345<h1>我的第一张网页</h1><p>我的第一个段落</p><script> window.alert(5 + 6);</script>
JavaScript语句
关键词
用途
var
声明变量
function
声明函数
try…catch
对语句块实现错误处理
双斜杠 // 或/*与 * ...
proj-2-动态二维码生成
主要使用MyQR库
1234567from MyQR import myqrmyqr.run( words='https://www.shiyanlou.com', picture='Sources/gakki.gif', colorized=True, save_name='myPicture.gif')
参数
含义
详细
words
二维码指向链接
str,输入链接或者句子作为参数
version
边长
int,控制边长,范围是1到40,数字越大边长越大,默认边长是取决于你输入的信息的长度和使用的纠错等级
level
纠错等级
str,控制纠错水平,范围是L、M、Q、H,从左到右依次升高,默认纠错等级为’H’
picture
结合图片
str,将QR二维码图像与一张同目录下的图片相结合,产生一张黑白图片
colorized
颜色
bool,使产生的图片由黑白变为彩色的
contrast
对比度
float,调节图片的对比度,1.0 表示原始图片,更小的值表示更低对比度 ...
proj-1 图片转字符画
灰度值:指黑白图像中点的颜色深度,范围一般从0到255,白色为255,黑色为0,故黑白图片也称灰度图像。
我们要转化一张彩色的图片到单色的字符上去,可以使用灰度值公式将像素的RGB值映射到灰度值 (注意这个公式并不是一个真实的算法,而是简化的 sRGB IEC61966-2.1 公式,真实的公式更复杂一些,不过在我们的这个应用场景下并没有必要 :
1gray = 0.2126 * r + 0.7152 * g + 0.0722 * b
代码:
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374from PIL import Imageimport argparsedef get_char(r,g,b,alpha = 256): '''RGB值转字符的函数''' # 判断 alpha ...
hexo+github建站
安装:
node.js
git
安装hexo:npm太慢,可以用淘宝镜像cnpm: <注意> 全部过程中不要混用npm和cnpm,否则会出bug
12npm install cnpm -g --registry=https://registry.npm.taobao.orgcnpm install -g hexo-cli
新建一个文件夹并初始化:
1hexo init blog
安装git部署插件:
1cnpm install hexo-deployer-git --save
然后:
123hexo ghexo dhexo s
常用hexo命令:
123456789101112131415npm install hexo -g #安装Hexonpm update hexo -g #升级hexo init #初始化博客命令简写hexo n "我的博客" == hexo new "我的博客" #新建文章hexo g == hexo generate #生成hexo ...