一直以来,java对于我都是新事物,对于新事物的接受方式也一直习惯从浅入深,循序渐进。
但是今天,张孝详老师给我们上了生动的一课,一个程序员最重要的能力就是学习能力,因为
计算机领域的技术其更新超快,目前所掌握的知识很有可能短时间内会被淘汰,而且会出现更好
更简洁的语言,那么该怎么去掌握呢。张老师认为,对于新事物,可以先搭建其框架,然后再添加
其细小的部件,即先建立其思想,然后实现细节!!
感觉颠覆了自己一直一来的学习方法,难管从基础班老毕就一直强调学习java,必须先建立其思想,
可以事倍功半。
以后的学习过程中,偶会尝试这种方式,加油哈!
如何解决乱码问题?
原则:编码唯一性!
无论是再客户端,还是服务端。无论是发送数据,还是接收数据。
只要保证从头到尾都以同一种编码表编码,那么就不会出现乱码!
servlet程序如下:(再程序里用了JSP,纯粹是为了练习今天的学习内容 呵呵.这段代码
是再Tomcat服务器下运行的)
package today.may.two;
import java.io.IOException;
import java.io.OutputStream;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import ......
//文件的打开
import java.awt.FileDialog;
import java.awt.event.*;
import java.io.*;
import java.io.File;
import java.io.FileReader;
public class FileOpen {
private FileDialog filedialog_open;
private String fileopen = null, filename = null;// 用于存放打开文件地址 和文件名
private File file1; // 文件字节流对象
private FileReader file_reader;//文件字符流对象
private BufferedReader in;//文件行读取 写入对象
private StringBuffer text = new StringBuffer();
HaffmanFrame haffman= null;
FileOpen(HaffmanFrame hf) {
haffman = hf;
filedialog_open = new FileDialog(haffman, "打开文件对话框", FileDialog.LOAD);
// 打开文件对话框适配器
filedialog_open.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
filedialog_open.setVisible(false);
}
});
}
public void open() {
String s = "";
filedialog_open.setVisible(true);
fileopen = filedialog_open.getDirectory();// 返回文件对话框中显示的文件所属的目录
filename ......
如何交换两个变量的值:
C语言中的传值代码如下:
int change(int x,int y)
{
int temp=x;
x=y;
y=temp;
}
C语言中的传址代码如下:
int change(int *p,int *q)
{
int temp=*p;
*p=*q;
*q=temp;
}
使用C++中的引用类型代码如下:
int change(int &x,int &y)
{
int temp=x;
x=y;
y=temp;
}
JAVA中代码同上;
上述代码共同点是都是使用的额外变量temp;如何不使用额外变量完成两个数的交换呢?
int change(int x,int y)
{
x=x+y;
y=x-y;
x=x-y;
}
例如:x=3,y=4
第一步:x=x+y=3+4=7;
第二步:y=x-y=7-4=3;
第三步: x=x-y=7-3=4;
如粗完成了连个数的交换,并且每有使用额外的空间. ......
如何交换两个变量的值:
C语言中的传值代码如下:
int change(int x,int y)
{
int temp=x;
x=y;
y=temp;
}
C语言中的传址代码如下:
int change(int *p,int *q)
{
int temp=*p;
*p=*q;
*q=temp;
}
使用C++中的引用类型代码如下:
int change(int &x,int &y)
{
int temp=x;
x=y;
y=temp;
}
JAVA中代码同上;
上述代码共同点是都是使用的额外变量temp;如何不使用额外变量完成两个数的交换呢?
int change(int x,int y)
{
x=x+y;
y=x-y;
x=x-y;
}
例如:x=3,y=4
第一步:x=x+y=3+4=7;
第二步:y=x-y=7-4=3;
第三步: x=x-y=7-3=4;
如粗完成了连个数的交换,并且每有使用额外的空间. ......
如何交换两个变量的值:
C语言中的传值代码如下:
int change(int x,int y)
{
int temp=x;
x=y;
y=temp;
}
C语言中的传址代码如下:
int change(int *p,int *q)
{
int temp=*p;
*p=*q;
*q=temp;
}
使用C++中的引用类型代码如下:
int change(int &x,int &y)
{
int temp=x;
x=y;
y=temp;
}
JAVA中代码同上;
上述代码共同点是都是使用的额外变量temp;如何不使用额外变量完成两个数的交换呢?
int change(int x,int y)
{
x=x+y;
y=x-y;
x=x-y;
}
例如:x=3,y=4
第一步:x=x+y=3+4=7;
第二步:y=x-y=7-4=3;
第三步: x=x-y=7-3=4;
如粗完成了连个数的交换,并且每有使用额外的空间. ......
使用InputStream和OutputStream来获得命令行运行结果和输入内容是首先需要具备的.
然后要解决SSH连接问题.
在OpenSource项目里找到了Ganymed SSH-2 for Java .下载后有例子,但是没有找到有关交互命令的例子.所以自己探索了一下
在网上看有老外讨论用这个如何改密码,基本上的问题都是因为找不到返回的提示
Linux修改密码输入passwd后,首先是输入当前密码,然后是输入两个新密码
如果当前密码输入错误,或者新密码输入不符合系统密码规则要求,会要求重新输入.如果碰到这种情况,程序很容易进入一个不太好控制的循环.
可能一般人都认为输入命令后所有的返回都应该是用session.getStdout();而不是session.getStderr();从方法名称上看确实如此,一个是取得标准输出,一个是取得错误信息.
其实在输入passwd后.
Changing password for user [username].
Changing password for [username]
这两行是需要通过session.getStdout();来获得的.但是后面的
(current) UNIX password:
New UNIX password:
Retype new UNIX password:
这三行是需要使用sessssion.getStderr();来获取的
如果用户输入没有通过系统检测,会返回具体原因,但是都是BAD PASSWORD开始的.
如果最后修改成功 ......
使用InputStream和OutputStream来获得命令行运行结果和输入内容是首先需要具备的.
然后要解决SSH连接问题.
在OpenSource项目里找到了Ganymed SSH-2 for Java .下载后有例子,但是没有找到有关交互命令的例子.所以自己探索了一下
在网上看有老外讨论用这个如何改密码,基本上的问题都是因为找不到返回的提示
Linux修改密码输入passwd后,首先是输入当前密码,然后是输入两个新密码
如果当前密码输入错误,或者新密码输入不符合系统密码规则要求,会要求重新输入.如果碰到这种情况,程序很容易进入一个不太好控制的循环.
可能一般人都认为输入命令后所有的返回都应该是用session.getStdout();而不是session.getStderr();从方法名称上看确实如此,一个是取得标准输出,一个是取得错误信息.
其实在输入passwd后.
Changing password for user [username].
Changing password for [username]
这两行是需要通过session.getStdout();来获得的.但是后面的
(current) UNIX password:
New UNIX password:
Retype new UNIX password:
这三行是需要使用sessssion.getStderr();来获取的
如果用户输入没有通过系统检测,会返回具体原因,但是都是BAD PASSWORD开始的.
如果最后修改成功 ......
显示所有的用户表
select tablename from sys.systables where tabletype='T'
创建表
Create Table MAPS(
ID integer not null generated always as identity(start with 1,increment by 1),
map_name varchar(40),
area_int int,
area decimal(8,4) not null,
picture blob(102400),
unique(map_id,map_name)
)
下面是一个从删除表,创建表,从文本文件导入数据,更新数据的例子.
drop table client;
CREATE TABLE client (
id integer not null generated always as identity(start with 1,increment by 1),
barcode varchar(20) default NULL,
pinyin varchar(10) default NULL,
type varchar(50) default NULL,
name varchar(30) default NULL,
sex varchar(10) default NULL,
title varchar(200) default NULL,
department varchar(200) default NULL,
company varchar(255) default NULL,
industry varchar(50) default NULL,
......
java关键字以前没什么注意,因为是很基础的东东。只是今天做SCJP题目,一看答案吓我大跳,翻转了我以往的错误观念。查阅了不少资料终于弄清楚了。题目如下:
Which are not Java keywords?
A. TRUE B. sizeof C. const D. super E. void
答案A,B 解析 (我印象中一直认为true ,null也为java关键字,其实是)
A: 不是,Java中有true,但是这也不是关键字而是字面量(literal)。
B: 不是,Java中不需要这个操作符,所有的类型(原始类型)的大小都是
固定的。
C、D、E都是,需要说明的是const是java中未被使用的关键字。
以下是java 关键字分类列表:(共50个,供大家参考)
访问控制:
private 私有的
protected 受保护的
public 公共的
类、方法和变量修饰符
abstract 声明抽象
class 类
extends 扩允,继承
final 终极,不可改变的
implements实现
interface 接口
native 本地
new 新,创建
static 静态
strictfp 严格,精准
synchronized 线程,同步
transient 短暂
volatile 易失
程序控制语句
break 跳出循环
continue ......