平时遇到的问题-总结:
MYSQL:
- -h(指定登录数据库的主机名)
- -p(指定登录数据库的密码)
- -e(指定SQL命令即可执行)
mysql命令表:
- For server side help, type ‘help contents’
变量命名规则:
基本要求:
- 首字母:字母,下划线(_)或符号(不能含有空格,不能以数字开头).
- 其他部分:数字,字母,下划线,符号(不能含有空格,不能以数字开头)
- php编程中所有变量必须以开始)
- 变量名不能是Java关键字(即保留字)
- 除了下划线、开始)3.变量名不能是Java关键字(即保留字)4.除了下划线、之外,不包括任何其他特殊字符
其他要求:
- (1)变量名当有多个单词组成时,第一个单词首字母小写,后一个单词的首字母大写(如:myName)
- (2)见名知意
- (3)变量名的长度没有限制,但却区分大小写(如:power和Power是两个不同的变量)
a++ 的含义是先赋值后相加,如 b=a++; 先将a的值赋给b,然后a再加上1;++a的含义是先相加后赋值,如 b=++a 先将a加上1,然后再把加上1的a赋给b.
快捷键:
- Ctrl+L 定位在某行 (对于程序超过100的人就有福音了)
- Ctrl+M 最大化当前的Edit或View (再按则反之)
- Ctrl+/ 注释当前行,再按则取消注释
- Ctrl+O 快速显示 OutLine
- Ctrl+T 快速显示当前类的继承结构
- Ctrl+W 关闭当前Editer
- Ctrl+K 参照选中的Word快速定位到下一个
- Ctrl+E 快速显示当前Editer的下拉列表(如果当前页面没有显示的用黑体表示)
- Ctrl+/(小键盘) 折叠当前类中的所有代码
- Ctrl+×(小键盘) 展开当前类中的所有代码
- Ctrl+Space 代码助手完成一些代码的插入(但一般和输入法有冲突,可以修改输入法的热键,也可以暂用Alt+/来代替)
- Ctrl+Shift+E 显示管理当前打开的所有的View的管理器(可以选择关闭,激活等操作)
- Ctrl+J 正向增量查找(按下Ctrl+J后,你所输入的每个字母编辑器都提供快速匹配定位到某个单词,如果没
- 有,则在stutes line中显示没有找到了,查一个单词时,特别实用,这个功能Idea两年前就有了)
- Ctrl+Shift+J 反向增量查找(和上条相同,只不过是从后往前查)
- Ctrl+Shift+F4 关闭所有打开的Editer
- Ctrl+Shift+X 把当前选中的文本全部变为大写
- Ctrl+Shift+Y 把当前选中的文本全部变为小写
- Ctrl+Shift+F 格式化当前代码
- Ctrl+Shift+P 定位到对于的匹配符(譬如{}) (从前面定位后面时,光标要在匹配符里面,后面到前面,则反之)
- 下面的快捷键是重构里面常用的,本人就自己喜欢且常用的整理一下(注:一般重构的快捷键都是Alt+Shift开头的了)
- Alt+Shift+R 重命名 (是我自己最爱用的一个了,尤其是变量和类的Rename,比手工方法能节省很多劳动力)
- Alt+Shift+M 抽取方法 (这是重构里面最常用的方法之一了,尤其是对一大堆泥团代码有用)
- Alt+Shift+C 修改函数结构(比较实用,有N个函数调用了这个方法,修改一次搞定)
- Alt+Shift+L 抽取本地变量( 可以直接把一些魔法数字和字符串抽取成一个变量,尤其是多处调用的时候)
- Alt+Shift+F 把Class中的local变量变为field变量 (比较实用的功能)
- Alt+Shift+I 合并变量(可能这样说有点不妥Inline)
- Alt+Shift+V 移动函数和变量(不怎么常用)
- Alt+Shift+Z 重构的后悔药(Undo)
- 自建偏好 preferences
- 常用的快捷键
-
ctrl+c 复制
- ctrl+v 粘贴
- ctrl+x 剪切
- ctrl+z 撤销
- ctrl+y 反撤销
- ctrl+s 保存
- ctrl+f 查询
- tab 缩进
- shift+tab 反缩进
- win+e 打开我的电脑
- win+d 回到桌面
- win+r 打开运行
- win+i 打开设置
- win+l 锁屏
dos命令
- dir 显示当前目录中的所有文件
- cd 文件夹名 切换到目录
- 盘符: d: 切换到d盘
- md 创建一个文件夹
- rd 移除一个文件夹
- cd… 回到上一层目录
- cd/ 回到当前盘符根目录
- del 删除文件
- help 帮助
- cls 清屏
- exit 退出
java程序
class 类名{
//main快捷
public static void main(String[] args){
//sout或syso快捷
System.out.println(“内容”);
}
}
注意 英文字母大小 还有括号的中英文
编程语言的分类:
- 1,编译型的语言C, C++, JAVA, OC, Swift, C#
- 2,解释型的语言(脚本语言), PHP, JavaScript, Python,Ruby
- 3,标记语言HTML, XML
内存分为3大分区: 栈区, 堆区, 方法区(包含静态区, 常量区)
每个功能不同:
栈区: 主要是给函数(方法)局部变量,分配内存. 栈区的特点:先进后出, 函数一旦被调用, 就会入栈, 开始为这个函数所有的局部变量分配内存, 当函数调用完毕, 函数就会出栈, 为函数里的局部变量分配的内存就会被回收.
堆区: 主要是给new 出来的对象分配内存, 堆区的特点, 主要是靠引用来检查对象是否有人再用, 如果对象没有人使用了, Java 的垃圾回收机制, 会回收这块堆区内存.
方法区: 方法区包含了静态区,常量区, 方法区主要存储.class字节码文件
函数的递归调用
函数内部, 可以嵌套函数本身, 这种调用方式叫做递归调用.
递归调用能够巧妙的解决一些算法问题, 但是递归调用会消耗大量的栈内存,因为,递归是一直调用的最里面, 再从最里面逐级返回. 使用递归一定要有出口,否则会导致栈溢出,程序终止.
部分包装类中提供了一个小的缓存, 该缓存的取值范围在(-128-127)之间, 若需要装箱的数在这个范围内, 则从缓冲区取一个实例, 否则会new 一个新的实例
继承后构造器的特点
1,当子类继承父类后, 子类中所有的构造器的第一句,都有一个隐式的:super().
super()的作用, 是调用父类无参的构造器.
super()的目的, 当子类继承父类后,继承了父类所有的属性和方法, 因此,子类需要知道父类是如何为对象进行初始化的.
2, 如果父类中没有显式定义无参构造, 只给了有参构造, 那么子类的构造器中,就不能使用super(),
解决方法:
- 父类显式提供一个无参构造
- 子类构造器中, 显式调用父类有参构造, 如果子类显式调用了父类的有参构造super(参数), 子类构造隐式的super()将不再提供.
- 子类所有的构造器里, 默认都有一个隐式的super().
- super() 必须出现在当前构造器中的首行 ,
- super() 和this() 不能同时出现(指的是super和this调用构造方法)
1,局部变量和成员变量的区别
- A, 作用域不一样
- B, 内存中的位置不一样
- C, 成员变量有默认值, 局部变量没有默认值.
(1)整型属性默认值是0
(2)浮点型属性默认值是0.0
(3)字符型属性默认值是’\u0000’
(4)布尔型属性默认值是false
(5)引用类型属性默认值是null
2,属性赋值初始值的方式
A,属性缺省值
B,定义属性直接显式赋初值
C,通过对象修改属性内容
1, 获取字符串的方法
A,串接字符串, concat
String str = “abc”;
String str2 = str.concat(“def”);
B,获取子串substring()
String str1 = str.substring(3);//从哪开始到最后
String str1 = str.substring(2,4) //包含头,不包含尾
C,转换大小写
str.toLowerCase();
str.toUpperCase();
D,去除首尾空格和制表符号
str.trim();
2, 搜索相关的方法
A, int indexOf(int ch) 获取指定字符在字符串中的位置, 若没有指定字符, 返回-1
B, int indexOf(int ch, int fromIndex) 从指定位置开始搜索
C, int indexOf(String str) 返回指定子字符串第一次出现的字符串内的索引。
D, int indexOf(String str, int fromIndex) 返回指定子串的第一次出现的字符串中的索引,从指定的索引开始。
E, int lastIndexOf(String str) 返回指定子字符串最后一次出现的字符串中的索引
3, 判断相关的方法
A, boolean equals(Object anObject) 判断是否相等
B, boolean equalsIgnoreCase(String anotherString) 判断是否相等,忽略大小写
C, boolean contains(CharSequence s) 判断是否包含某字符串
D, boolean startsWith(String prefix) 判断是否是以指定字符串打头
E, boolean endsWith(String suffix) 判断是否是以指定字符串结尾
F, boolean isEmpty() 判断字符串是否为空
4,其他方法
A, int length() 返回字符串的长度
B, char charAt(int index) 返回索引处的字符
C,将字符数组转换成字符串
构造器: String(char[] ch)
静态方法:static String copyValueOf(char[] ch);
D,将字符串转换成字符数组
char[] toCharArray()
E, String replace(char oldChar, char newChar) 替换字符串中的字符
F, String replace(CharSequence target, CharSequence replacement) 替换字符串中的某个字符串
StringBuffer****和 StringBulider
1.两个类的区别和联系
A,创建一个可变的字符串对象
B, StringBuffer 和StringBulider 使用方式一模一样
C, StringBuffer考虑了线程安全的问题, 但是效率低
D, StringBulider比StringBuffer效率高, 因为没有考虑线程安全的问题.
StringBuffer 和 StringBulider 的常用方法
- 1, StringBuffer append(CharSequence s) 原串拼接
- 2, StringBuilder insert(int dstOffset, CharSequence s) 原串插入
- 3, int indexOf(String str) 寻找子串位置
- 4, String substring(int start, int end) 获得子串
- 5, StringBuffer delete(int start, int end) 删除某个范围字符串
- 6, StringBuffer deleteCharAt(int index) 删除某个位置字符
- 7,String toString() 转换成不可变字符串.